A command line tool for bulk-updating lerna package dependencies
Command line interface for simplifying the process of bulk updating dependencies across multiple Lerna or Yarn Workspace packages.
$ yarn add --dev lerna-update-wizard
Or via NPM:
$ npm install --save-dev lerna-update-wizard
If installed globally, it can be used independently on any project:
$ yarn global add lerna-update-wizard
Simply run the
lernaupdatecommand in the root of a Lerna-based project:
Or from the outside by specifying the path to the project:
$ lernaupdate ~/projects/my-lerna-project
Or run it using npx
$ npx lerna-update-wizard
You can batch updates for multiple dependencies into one session. Choose
+ Add anotherafter you've specified the details for the first update task.
Note: Currently not supported in
A nice commit message with details about the update version range for each affected package will be generated for you.
The script can run without prompting you for input. Simply specify the
$ lernaupdate --non-interactive --dependency [email protected] ./my-project
The script will tell you if you need to specify any additional input flags based on the state of your mono repo.
For instance, you might need/wish to include information about which packages to affect and which type of installation to perform if the dependency is a first-time install:
$ lernaupdate --non-interactive \ --dependency [email protected] \ --packages packages/utils,packages/tools \ --new-installs-mode dev \ ./my-project
Note: Git features are not available for
Lerna Update Wizard will automatically detect the package manager used for each package and use the appropriate one for installing the dependency.
Note: If the project root directory contains a
yarn.lockfile, Yarn will be used to install all packages, in order to support Yarn Workspaces.
When using Yarn Workspaces for your mono-repo, only a single installation is required in the top-level directory after changing a dependency in the package.json file for one or more sub-packages.
To achieve this single "lazy" install, which can significantly speed up the install duration, you can specify the
If not specified, you will be prompted with the option to enable it at runtime, whenever use of Yarn Workspaces is detected (unless in non-interactive mode).
Lerna Update Wizard takes Lerna's
packagesconfig parameter into account if specified in lerna.json. This means that if you have your packages located in a directory other than
packages/, this tool will still work, as long as their parent directory is specified.