/syncpack

Consistent dependency versions in large JavaScript Monorepos.

Primary LanguageTypeScriptMIT LicenseMIT

syncpack


Consistent dependency versions in large JavaScript Monorepos.
https://jamiemason.github.io/syncpack

Tip

🦀 A Rust rewrite is available to try at npm install -g syncpack@14.0.0-alpha.1

Installation

npm install --save-dev syncpack

Commands

Ensure that multiple packages requiring the same dependency define the same version, so that every package requires eg. react@16.4.2, instead of a combination of react@16.4.2, react@0.15.9, and react@16.0.0.

Organise package.json files according to a conventional format, where fields appear in a predictable order and nested fields are ordered alphabetically. Shorthand properties are used where available, such as the "repository" and "bugs" fields.

Lint all versions and ranges and exit with 0 or 1 based on whether all files match your Syncpack configuration file.

Check whether dependency versions used within "dependencies", "devDependencies", etc follow a consistent format.

List all dependencies required by your packages.

List dependencies which are required by multiple packages, where the version is not the same across every package.

Displays a series of prompts to fix mismatches which syncpack cannot fix automatically.

Ensure dependency versions used within "dependencies", "devDependencies" etc follow a consistent format.

Interactively update packages to the latest versions from the npm registry, wherever they are in your monorepo. You can update every dependency, just dev/peer/prod dependencies, just packages which match a name filter, and more.

Badges

  • support on ko-fi
  • NPM version
  • NPM downloads
  • Build Status