UNPKG

@antfu/ni

Version:

Use the right package manager

201 lines (134 loc) 2.61 kB
# ni ~~*`npm i` in a yarn project, again? F\*\*k!*~~ **ni** - use the right package manager <br> <pre> npm i -g <b>@antfu/ni</b> <b>ni</b> </pre> <a href='https://docs.npmjs.com/cli/v6/commands/npm'>npm</a> · <a href='https://yarnpkg.com'>yarn</a> · <a href='https://pnpm.js.org/en/'>pnpm</a> <br> ### `ni` - install ```bash ni # npm install # yarn install # pnpm install ``` ```bash ni axios # npm i axios # yarn add axios # pnpm add axios ``` ```bash ni @types/node -D # npm i @types/node -D # yarn add @types/node -D # pnpm add -D @types/node ``` ```bash ni --frozen # npm ci # yarn install --frozen-lockfile # pnpm install --frozen-lockfile ``` ```bash ni -g iroiro # npm i -g iroiro # yarn global add iroiro # pnpm add -g iroiro # this uses default agent, regardless your current working directory ``` <br> ### `nr` - run ```bash nr dev --port=3000 # npm run dev -- --port=3000 # yarn run dev --port=3000 # pnpm run dev -- --port=3000 ``` ```bash nr # interactively select the script to run # supports https://www.npmjs.com/package/npm-scripts-info convention ``` ```bash nr - # rerun the last command ``` <br> ### `nx` - execute ```bash nx jest # npx jest # yarn dlx jest # pnpm dlx jest ``` <br> ### `nu` - upgrade ```bash nu # npm upgrade # yarn upgrade # pnpm update ``` ```bash nu -i # (not available for npm) # yarn upgrade-interactive # pnpm update -i ``` <br> ### `nun` - uninstall ```bash nun axios # npm uninstall axios # yarn remove axios # pnpm remove axios ``` ```bash nun @types/node -D # npm uninstall @types/node -D # yarn remove @types/node -D # pnpm remove -D @types/node ``` ```bash nun -g eslint # npm uninstall -g eslint # yarn global remove eslint # pnpm remove -g eslint ``` <br> ### `nci` - clean install ```bash nci # npm ci # yarn install --frozen-lockfile # pnpm install --frozen-lockfile ``` if the corresponding node manager is not present, this command will install it globally along the way. <br> ### Change Directory ```bash ni -C packages/foo vite nr -C playground dev ``` <br> ### Config ```ini ; ~/.nirc ; fallback when no lock found defaultAgent=npm # default "prompt" ; for global installs globalAgent=npm ``` ```bash # ~/.bashrc # custom configuration file path export NI_CONFIG_FILE="$HOME/.config/ni/nirc" ``` <br> ### How? **ni** assumes that you work with lockfiles (and you should) Before it runs, it will detect your `yarn.lock` / `pnpm-lock.yaml` / `package-lock.json` to know current package manager (or `packageManager` field in your packages.json), and runs the corresponding commands.