Home

Awesome

syncpack

<p align="center"> <img src="https://jamiemason.github.io/syncpack/logo.svg" width="200" height="179" alt=""> <br>Consistent dependency versions in large JavaScript Monorepos. <br><a href="https://jamiemason.github.io/syncpack">https://jamiemason.github.io/syncpack</a> </p>

[!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

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.

Badges