Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evanzhoudev/npm-confirm
✅ Use the right JS package manager without thinking.
https://github.com/evanzhoudev/npm-confirm
bun nodejs npm pnpm yarn
Last synced: 2 months ago
JSON representation
✅ Use the right JS package manager without thinking.
- Host: GitHub
- URL: https://github.com/evanzhoudev/npm-confirm
- Owner: EvanZhouDev
- License: gpl-3.0
- Created: 2024-04-02T04:45:44.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-07-27T21:57:35.000Z (5 months ago)
- Last Synced: 2024-10-11T19:32:52.448Z (2 months ago)
- Topics: bun, nodejs, npm, pnpm, yarn
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/npm-confirm
- Size: 480 KB
- Stars: 12
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![npm Confirm Banner](./art/banner.png)
Use the right JS package manager without thinking.
Installation | Features## What is `npmc`?
`npmc` is a wrapper for the `npm` command that _confirms with you if it detects you using another package manager_.
When confirming, you can choose to do 3 things:
1. Run your command, [**adapted for the new package manager**](#automatic-command-adaptation)
2. Run your **original command**
3. **Cancel** the operationNow, you can just copy and paste `npm install` commands from documentation without needing to manually edit the package manager!
Why not
@antfu/ni
?When aliased to just `npm`, `npmc` serves as a quick way to run commands copied from external sources without needing to modify it at all, as opposed to `ni`, which reqires you to still swap out the `npm install` bit.
However, these tools can serve as compliments.
- If you are typing commands directly, you can still choose to use `ni`.
- You can use `npmc` in addition for copying and pasting or to catch occasional slipups.## Installation
```bash
npm install -g npm-confirm
```This will give you access to the `npmc` command, which acts like the `npm` command, but confirms with you.
I strongly recommend aliasing `npmc` to just `npm` so you can use `npm` like normal.
To do this in `zsh` or `bash` add this to your `.zshrc` or `.bashrc`:
```bash
alias npm='npmc'
```Wrapping
pnpm
,bun
, andyarn
You may also want the `pnpm`, `bun`, and `yarn` commands to give confirmation when used with the wrong package manager.
By default, `npmc` acts as `npm` when no other package managers are detected. However, you can change that default by simply passing a `--[NAME]-alias` flag.
For example, if I run `npmc --pnpm-alias`, it will act as `pnpm` and confirm with you if you are using a non-`pnpm` package manager.
Again, I recommend aliasing these in `.zshrc`:
```bash
# npm
alias npm='npmc'# pnpm
alias pnpm='npmc --pnpm-alias'# bun
alias bun='npmc --bun-alias'# yarn
alias yarn='npmc --yarn-alias'
```## Features
### Automatic Command Adaptation
`npmc` will automatically adapt agent subcommands and flags from one package manager to the other.
For example, NPM's `ci` command will automagically be converted to `bun install --no-save` for Bun, and accordingly for other package managers.
### Command Preview
`npmc` always shows you what command will be run, both when using the adapted package manager, or even the one you ran the command with.
This maximizes transparency, and ensures `npmc` never does something you didn't mean when adapting commands.
Have a problem with command adaptation? Submit an issue!
### Smart Confirmations
`npmc` only confirms when you run certain commands, such as `install`, `uninstall`, `run`, `upgrade`, and their variants for the various package managers. This means that when you truly meant to use the other package manager, `npmc` will not stand in your way. Furthermore, all global installations are directly done directly with whatever you ran it with!