Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JamieMason/syncpack
Consistent dependency versions in large JavaScript Monorepos.
https://github.com/JamieMason/syncpack
linter monorepo npm nx pnpm semver turborepo version-management version-manager yarn
Last synced: 3 days ago
JSON representation
Consistent dependency versions in large JavaScript Monorepos.
- Host: GitHub
- URL: https://github.com/JamieMason/syncpack
- Owner: JamieMason
- License: mit
- Created: 2017-08-17T16:58:10.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T13:16:35.000Z (5 days ago)
- Last Synced: 2024-10-29T14:51:21.596Z (5 days ago)
- Topics: linter, monorepo, npm, nx, pnpm, semver, turborepo, version-management, version-manager, yarn
- Language: TypeScript
- Homepage: https://jamiemason.github.io/syncpack/
- Size: 8.2 MB
- Stars: 1,427
- Watchers: 7
- Forks: 50
- Open Issues: 40
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- my-awesome-list - syncpack
- awesome-monorepo - Syncpack
- awesome-github-star - syncpack
- popular-dependents-lists - JamieMason/syncpack - 🌟 589 (FpTs / JamieMason/syncpack)
README
# syncpack
Consistent dependency versions in large JavaScript Monorepos.
https://jamiemason.github.io/syncpack## Installation
```bash
npm install --save-dev syncpack
```## Commands
### [fix-mismatches](https://jamiemason.github.io/syncpack/command/fix-mismatches)
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]`.
### [format](https://jamiemason.github.io/syncpack/command/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](https://jamiemason.github.io/syncpack/command/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](https://jamiemason.github.io/syncpack/command/lint-semver-ranges)
Check whether dependency versions used within "dependencies", "devDependencies", etc follow a consistent format.
### [list](https://jamiemason.github.io/syncpack/command/list)
List all dependencies required by your packages.
### [list-mismatches](https://jamiemason.github.io/syncpack/command/list-mismatches)
List dependencies which are required by multiple packages, where the version is not the same across every package.
### [prompt](https://jamiemason.github.io/syncpack/command/prompt)
Displays a series of prompts to fix mismatches which syncpack cannot fix automatically.
### [set-semver-ranges](https://jamiemason.github.io/syncpack/command/set-semver-ranges)
Ensure dependency versions used within `"dependencies"`, `"devDependencies"` etc follow a consistent format.
### [update](https://jamiemason.github.io/syncpack/command/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
- [![support on ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/C0C4PY4P)
- [![NPM version](http://img.shields.io/npm/v/syncpack.svg?style=flat-square)](https://www.npmjs.com/package/syncpack)
- [![NPM downloads](http://img.shields.io/npm/dm/syncpack.svg?style=flat-square)](https://www.npmjs.com/package/syncpack)
- [![Build Status](https://img.shields.io/github/actions/workflow/status/JamieMason/syncpack/ci.yaml?branch=main)](https://github.com/JamieMason/syncpack/actions)