syncpack
Consistent dependency versions in large JavaScript Monorepos.
https://jamiemason.github.io/syncpack
[!NOTE] This is the README for v13, it will be replaced by a Rust rewrite which is available to try at
npm install -g syncpack@alpha
Installation
npm install --save-dev syncpack@13
Commands
fix-mismatches
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`.
format
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
Lint all versions and ranges and exit with 0 or 1 based on whether all files match your Syncpack configuration file.
lint-semver-ranges
Check whether dependency versions used within "dependencies", "devDependencies", etc follow a consistent format.
list
List all dependencies required by your packages.
list-mismatches
List dependencies which are required by multiple packages, where the version is not the same across every package.
prompt
Displays a series of prompts to fix mismatches which syncpack cannot fix automatically.
set-semver-ranges
Ensure dependency versions used within "dependencies"
, "devDependencies"
etc follow a consistent format.
update
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.