@rushstack/lockfile-explorer
Version:
Rush Lockfile Explorer: The UI for solving version conflicts quickly in a large monorepo
77 lines (57 loc) • 3.29 kB
Markdown
# /lockfile-explorer
<div>
<br />
<a href="https://lfx.rushstack.io/">
<img width="380" alt="Rush Lockfile Explorer" src="https://lfx.rushstack.io/images/site/lockfile-explorer.svg">
</a>
<p />
</div>
**Rush Lockfile Explorer** helps you investigate and solve version conflicts when working in a monorepo
that uses the [PNPM package manager](https://pnpm.io/). It's designed for the [Rush](https://rushjs.io)
build orchestrator, but you can also use it to analyze a standalone PNPM workspace without Rush.
Lockfile Explorer helps with problems such as:
- Understanding why multiple versions of an NPM package are appearing in your `node_modules` folder
- Tracing dependencies to determine which project caused an NPM package to be installed
- Finding and eliminating "doppelgangers" (multiple installations of the same version
of the same package)
- Troubleshooting problems involving peer dependencies
> This project is a new idea whose design is still evolving.
> Please provide feedback by
> [creating a GitHub issue](https://github.com/microsoft/rushstack/issues/new/choose)
> or posting in the Rush Stack
> [Zulip chat room](https://rushstack.zulipchat.com/). Thank you!
## Usage
Here's how to invoke the **Rush Lockfile Explorer** tool:
```bash
# Install the NPM package globally.
#
# (You could substitute "pnpm" or "yarn" instead of "npm" here. To avoid confusing
# duplicate installs, always use the same tool for global installations!)
npm install -g /lockfile-explorer
# Go to your monorepo folder
cd my-rush-repo
# Run "rush install" to ensure common/temp/node_modules is up to date.
# (If your monorepo is using PNPM without Rush, substitute "pnpm install" for this step.)
rush install
# Launch the Lockfile Explorer command line interface (CLI).
# It expects to find a Rush/PNPM workspace in your shell's current working directory.
# As a shorthand, the "lfx" alias can be used here instead of "lockfile-explorer".
lockfile-explorer
```
The CLI will start a Node.js service on `http://localhost/` and launch your default web browser:
<img width="800" alt="screenshot" src="https://lfx.rushstack.io/images/site/readme-screenshot.png"><br/>
_Lockfile Explorer main window_
## How it works
The web app will expect to find a Rush/PNPM workspace in the current working directory where
the `lockfile-explorer` command was invoked. It will read files such as:
- **common/config/rush/pnpm-lock.yaml** - the PNPM lockfile for your monorepo
- **common/config/rush/.pnpmfile.cjs** - which transforms **package.json** files during installation
- The **package.json** files for your local workspace projects
- The **package.json** files for external packages installed in the `node_modules` folders.
## Links
- [Documentation and tutorials](https://lfx.rushstack.io/) on the Lockfile Explorer project website
- [CHANGELOG.md](https://github.com/microsoft/rushstack/blob/main/apps/lockfile-explorer/CHANGELOG.md) - Find
out what's new in the latest version
- [/trace-import](https://www.npmjs.com/package/@rushstack/trace-import) -
a command-line tool for troubleshooting how modules are resolved by `import` and `require()`
Rush Lockfile Explorer is part of the [Rush Stack](https://rushstack.io/) family of projects.