Contributing
Lockfile Explorer is developed in the monorepo for the Rush Stack family of projects:
https://github.com/microsoft/rushstack
Contribute to the documentation website in the rushstack-websites monorepo.
For general instructions for building Rush and guidelines for submitting PRs, please read the Contributing documentation for the Rush Stack monorepo.
The relevant monorepo project folders are:
- apps/lockfile-explorer - the published NPM package, containing the command-line binary and localhost Node.js service
- apps/lockfile-explorer-web - the
React web application project. This NPM package is not published; instead, its bundle is copied
into the
@rushstack/lockfile-explorer
package.
Building Lockfile Explorer in "watch mode"
If you're contributing a feature or fix for Lockfile Explorer, it's convenient to build these two projects in "watch mode". This way, whenever you save a change to a source file, the affected project will automatically rebuild itself, and restart the Node.js service and/or reload the web browser.
Before you get started:
cd rushstack
# Install NPM packages
rush install
# Build all the dependency projects
rush build --to-except lockfile-explorer --to-except lockfile-explorer-web
Starting watch mode for the server:
cd apps/lockfile-explorer
rushx start
Starting watch mode for the client app:
cd apps/lockfile-explorer-web
rushx start
Final testing by installing locally
When you're ready to create your PR, it's a good idea to build a full production release and try installing it locally:
cd rushstack
# Install NPM packages
rush install
# Make a production build of the published NPM package
rush build --to lockfile-explorer --production
cd apps/lockfile-explorer
# Create a publishable tarball such as "rushstack-lockfile-explorer-1.2.3.tgz"
# This command is similar to "npm pack" or "pnpm pack", but for a Rush workspace:
rush-pnpm pack
# Try globally installing the tarball on your local machine
npm install -g rushstack-lockfile-explorer-1.2.3.tgz
# When you run the "lockfile-explorer" shell command, it should now launch your
# locally built package
lockfile-explorer