Consistent dependency versions in large JavaScript Monorepos.
https://jamiemason.github.io/syncpack
Tip
🦀 A Rust rewrite is available to try at npm install -g [email protected]
npm install --save-dev syncpack
Ensure that multiple packages requiring the same dependency define the same version, so that every package requires eg. [email protected]
, instead of a combination of [email protected]
, [email protected]
, and [email protected]
.
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.