npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

lerna-update-wizard

v1.1.2

Published

Command line interface for simplifying the process of bulk updating dependencies across multiple Lerna or Yarn Workspace packages.

Downloads

49,022

Readme

Lerna Update Wizard

Command line interface for simplifying the process of bulk updating dependencies across multiple Lerna or Yarn Workspace packages.

Install

$ 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

Usage

Simply run the lernaupdate command in the root of a Lerna-based project:

$ lernaupdate

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

Features

Update dependencies across packages

  1. Search for and select the dependency to upgrade
  2. Select the packages in which you wish to perform the upgrade
  3. Pick the desired version to be installed for the dependency

Update dependency

Add new dependencies across packages

  1. Enter the name of a dependency not already in your project
  2. Select the packages in which to add the dependency
  3. Pick the desired version to be installed for the dependency
  4. When prompted, specify dependency type for each package (normal/dev/peer)

Add packages

Deduplicate dependencies across packages

  1. Run the command with the --dedupe option
  2. Only dependencies installed with 2 or more differing versions will be presented
  3. Complete the flow like normal (described above)

Deduplicate packages

Add/Update multiple dependencies in one session

You can batch updates for multiple dependencies into one session. Choose + Add another after you've specified the details for the first update task.

Add packages

Note: Currently not supported in --noninteractive mode.

Auto-generate Git branch & commit

  1. After installation, choose whether or not you'd like to generate a Git branch for your changes

  2. Then choose whether or not you'd like to make a separate Git commit for your changes.

    A nice commit message with details about the update version range for each affected package will be generated for you.

Git

Non-interactive mode

The script can run without prompting you for input. Simply specify the --non-interactive flag:

$ 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 --non-interactive mode.

Yarn support

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.lock file, Yarn will be used to install all packages, in order to support Yarn Workspaces.

NPM

NPM install

Yarn

Yarn install

Yarn Workspaces & lazy installation

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 --lazy flag.

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).

Notes

Lerna Update Wizard takes Lerna's packages config 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.