Consistent dependency versions in large JavaScript Monorepos.
Installations
npm install syncpack
Developer Guide
Typescript
Yes
Module System
ESM
Min. Node Version
>=18.18.0
Node Version
22.11.0
NPM Version
11.0.0
Score
94.8
Supply Chain
87
Quality
92.9
Maintenance
100
Vulnerability
99.6
License
Releases
14.0.0-alpha.10
Updated on Feb 11, 2025
14.0.0-alpha.9
Updated on Feb 10, 2025
14.0.0-alpha.8
Updated on Feb 10, 2025
14.0.0-alpha.7
Updated on Feb 09, 2025
14.0.0-alpha.6
Updated on Feb 09, 2025
14.0.0-alpha.5
Updated on Feb 05, 2025
Contributors
Languages
TypeScript (81.38%)
MDX (15.27%)
JavaScript (2.62%)
Astro (0.46%)
CSS (0.15%)
Shell (0.13%)
Love this project? Help keep it running — sponsor us today! 🚀
Developer
Download Statistics
Total Downloads
44,591,434
Last Day
190,898
Last Week
1,011,765
Last Month
4,137,292
Last Year
28,296,174
GitHub Statistics
MIT License
1,547 Stars
493 Commits
58 Forks
7 Watchers
6 Branches
27 Contributors
Updated on Feb 14, 2025
Package Meta Information
Latest Version
13.0.2
Package Id
syncpack@13.0.2
Unpacked Size
279.89 kB
Size
57.53 kB
File Count
230
NPM Version
11.0.0
Node Version
22.11.0
Published on
Feb 05, 2025
Total Downloads
Cumulative downloads
Total Downloads
44,591,434
Last Day
-0.4%
190,898
Compared to previous day
Last Week
-3.4%
1,011,765
Compared to previous week
Last Month
75.8%
4,137,292
Compared to previous month
Last Year
252.9%
28,296,174
Compared to previous year
Daily Downloads
Weekly Downloads
Monthly Downloads
Yearly Downloads
Dependencies
18
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@alpha
Installation
1npm 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

No vulnerabilities found.
Reason
10 commit(s) and 22 issue activity found in the last 90 days -- score normalized to 10
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
- Info: project has a license file: LICENSE:0
- Info: FSF or OSI recognized license: MIT License: LICENSE:0
Reason
Found 1/30 approved changesets -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
- Warn: no topLevel permission defined: .github/workflows/ci.yaml:1
- Warn: no topLevel permission defined: .github/workflows/deploy-site.yaml:1
- Warn: no topLevel permission defined: .github/workflows/test-site.yaml:1
- Info: no jobLevel write permissions found
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
- Warn: no security policy file detected
- Warn: no security file to analyze
- Warn: no security file to analyze
- Warn: no security file to analyze
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/ci.yaml/main?enable=pin
- Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/ci.yaml/main?enable=pin
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/ci.yaml/main?enable=pin
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-site.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/deploy-site.yaml/main?enable=pin
- Warn: third-party GitHubAction not pinned by hash: .github/workflows/deploy-site.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/deploy-site.yaml/main?enable=pin
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-site.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/deploy-site.yaml/main?enable=pin
- Warn: third-party GitHubAction not pinned by hash: .github/workflows/deploy-site.yaml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/deploy-site.yaml/main?enable=pin
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-site.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/test-site.yaml/main?enable=pin
- Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-site.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/test-site.yaml/main?enable=pin
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-site.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/JamieMason/syncpack/test-site.yaml/main?enable=pin
- Info: 0 out of 6 GitHub-owned GitHubAction dependencies pinned
- Info: 0 out of 4 third-party GitHubAction dependencies pinned
Reason
project is not fuzzed
Details
- Warn: no fuzzer integrations found
Reason
branch protection not enabled on development/release branches
Details
- Warn: branch protection not enabled for branch 'main'
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
- Warn: 0 commits out of 1 are checked with a SAST tool
Reason
10 existing vulnerabilities detected
Details
- Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275
- Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99
- Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55
- Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm
- Warn: Project is vulnerable to: GHSA-64vr-g452-qvp3 / GHSA-gprj-6m2f-j9hx
- Warn: Project is vulnerable to: GHSA-9cwx-2883-4wfx
- Warn: Project is vulnerable to: GHSA-vg6x-rcgg-rjx6
- Warn: Project is vulnerable to: GHSA-9crc-q9x8-hgqq
- Warn: Project is vulnerable to: GHSA-c4pw-33h3-35xw
- Warn: Project is vulnerable to: GHSA-49w6-73cw-chjr
Score
3.4
/10
Last Scanned on 2025-02-10
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn MoreOther packages similar to syncpack
@terminal-nerds/syncpack-config
Terminal Nerds extendable configuration for syncpack.
@clabnet/configs-syncpack
Shared syncpack config for monorepo and lib packages
@muravjev/configs-syncpack
Shared syncpack config
@adchitects/syncpack-config
@adchitects extendable configuration for syncpack.