syncpack
![Follow fold_left on Twitter](https://img.shields.io/twitter/follow/fold_left.svg?style=social&label=Follow)
Summary
Manage multiple package.json
files, such as packages/*/package.json
in
Lerna Monorepos.
Installation
npm install --global syncpack
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
.
Options
-s, --source [pattern] glob pattern for package.json files to read from
-p, --prod include dependencies
-d, --dev include devDependencies
-P, --peer include peerDependencies
-i, --indent [value] override indentation. defaults to " "
-h, --help output usage information
Examples
syncpack fix-mismatches
syncpack fix-mismatches --source "apps/*/package.json"
syncpack fix-mismatches --source "apps/*/package.json" --source "core/*/package.json"
syncpack fix-mismatches --dev
syncpack fix-mismatches --dev --peer
syncpack fix-mismatches --indent " "
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.
Options
-s, --source [pattern] glob pattern for package.json files to read from
-i, --indent [value] override indentation. defaults to " "
-h, --help output usage information
Examples
syncpack format
syncpack format --source "apps/*/package.json"
syncpack format --source "apps/*/package.json" --source "core/*/package.json"
syncpack format --indent " "
list
List all dependencies required by your packages.
Options
-s, --source [pattern] glob pattern for package.json files to read from
-p, --prod include dependencies
-d, --dev include devDependencies
-P, --peer include peerDependencies
-h, --help output usage information
Examples
syncpack list
syncpack list --source "apps/*/package.json"
syncpack list --source "apps/*/package.json" --source "core/*/package.json"
syncpack list --dev
syncpack list --dev --peer
list-mismatches
List dependencies which are required by multiple packages, where the version is
not the same across every package.
Options
-s, --source [pattern] glob pattern for package.json files to read from
-p, --prod include dependencies
-d, --dev include devDependencies
-P, --peer include peerDependencies
-h, --help output usage information
Examples
syncpack list-mismatches
syncpack list-mismatches --source "apps/*/package.json"
syncpack list-mismatches --source "apps/*/package.json" --source "core/*/package.json"
syncpack list-mismatches --dev
syncpack list-mismatches --dev --peer
set-semver-ranges
Ensure dependency versions used within "dependencies"
, "devDependencies"
,
and "peerDependencies"
follow a consistent format.
Options
-r, --semver-range <range> <, <=, "", ~, ^, >=, >, or *. defaults to ""
-s, --source [pattern] glob pattern for package.json files to read from
-p, --prod include dependencies
-d, --dev include devDependencies
-P, --peer include peerDependencies
-i, --indent [value] override indentation. defaults to " "
-h, --help output usage information
Examples
syncpack set-semver-ranges
syncpack set-semver-ranges --source "apps/*/package.json"
syncpack set-semver-ranges --source "apps/*/package.json" --source "core/*/package.json"
syncpack set-semver-ranges --semver-range ~
syncpack set-semver-ranges --dev --semver-range ~
syncpack set-semver-ranges --dev --peer --semver-range ~
syncpack set-semver-ranges --indent " "
Supported Ranges
< <1.4.2
<= <=1.4.2
"" 1.4.2
~ ~1.4.2
^ ^1.4.2
>= >=1.4.2
> >1.4.2
* *