Thanks A lof for your interest in contributing to this project! We welcome contributions from everyone. Below are some guidelines to help you get started.
Rspack-Resolver is built using Rust and NAPI-RS, then released as both npm package and Rust crate.
Rspack is built using Rust and NAPI-RS, then released as Node.js packages.
- Install Rust using rustup.
- If you are using VS Code, we recommend installing the rust-analyzer extension.
We recommend using the LTS version of Node.js 22.
Check the current Node.js version with the following command:
node -vIf you do not have Node.js installed in your current environment, you can use nvm or fnm to install it.
Here is an example of how to install via nvm:
# Install Node.js LTS
nvm install 22 --lts
# Switch to Node.js LTS
nvm use 22# Build @rspack/resolver's node release binding.
npm run build
# or
npm run build:releaseYou can switch to profiling and debug profile by npm run build:profiling and npm run build:debug respectively.
# Run all Rust tests
cargo test# Run all Node.js tests
npm run test- create a release branch as
release/x.y.z - Bump version in
Cargo.toml - Commit and push the release branch
- Run the
release-plz.ymlworkflow in GitHub Actions to publish the crate to crates.io.
In most cases, We publish @rspack/resolver npm package after rspack-resolver crate.
- Bump version by
./x version <major|minor|patch>in the root directory - Commit and push the release branch
- Run the
release-npm.ymlworkflow in GitHub Actions to publish the package to npm.