Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/privatenumber/ci
Run npm ci using the appropriate Node package manager (npm, yarn, pnpm)
https://github.com/privatenumber/ci
ci install lock npm pnpm yarn
Last synced: 10 days ago
JSON representation
Run npm ci using the appropriate Node package manager (npm, yarn, pnpm)
- Host: GitHub
- URL: https://github.com/privatenumber/ci
- Owner: privatenumber
- License: mit
- Created: 2021-01-30T05:01:49.000Z (almost 4 years ago)
- Default Branch: develop
- Last Pushed: 2023-08-09T05:03:09.000Z (about 1 year ago)
- Last Synced: 2024-10-19T01:11:18.398Z (18 days ago)
- Topics: ci, install, lock, npm, pnpm, yarn
- Language: TypeScript
- Homepage:
- Size: 942 KB
- Stars: 56
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# npx ci [![Latest version](https://badgen.net/npm/v/ci)](https://npm.im/ci) [![npm downloads](https://badgen.net/npm/dm/esbuild-loader)](https://npm.im/esbuild-loader)
A safer [`npm ci`](https://docs.npmjs.com/cli/v8/commands/npm-ci).
Run it in any npm project to install dependencies from lock using the appropriate package-manager (supports [npm](https://docs.npmjs.com/cli/v7/commands/npm), [yarn](https://yarnpkg.com/) and [pnpm](https://pnpm.io/)).
## Usage
Use in your npm project instead of [`npm ci`](https://docs.npmjs.com/cli/v8/commands/npm-ci):
```sh
npx ci
```## Why?
npm has a [`npm ci`](https://docs.npmjs.com/cli/v8/commands/npm-ci) command to install dependencies from the lock file (eg. `package-lock.json`), ensuring all project contributors have the same dependencies.
This command is different across 3rd-party package-managers like [yarn](https://yarnpkg.com/) and [pnpm](https://pnpm.io/), and can be confusing to remember when switching between projects.
This is where `npx ci` comes in:
- **Package-manager agnostic**
`npx ci` is a package-manager agnostic `npm ci`. You can run this in any project and dependencies will be installed appropriately.
It's great for contributing to new projects!- **Can use in any environment with a single command**
If yarn or pnpm isn't already installed, `npx ci` installs it for you.
It's great for using it in CI/CD workflows!
- **Typo proof**
When you accidentally type _npx_ when typing in `npm ci`, your dependencies still get installed.
It's actually the _safer_ option too!
## FAQ
### Can it detect the package manager without a lock file?
It's possible to detect the package manager using other signals (eg [`package.json#packageManager`](https://nodejs.org/api/packages.html#packagemanager), `.yarnrc.yml`).
However, since `npx ci` is strictly an alternative to `npm ci`, a lock file is necessary to do a _clean_/_immutable_/_frozen_ install.
## Related
- [`npx link`](https://github.com/privatenumber/link) - A safer `npm link`.
## Sponsors