Awesome
Alternative ni
written in zsh
ni
- use the right package manager
You can run npm/yarn/pnpm/bun with same command!
- Original: https://github.com/antfu/ni
Installation
Using Zinit
zinit load azu/ni.zsh
Using Antigen
antigen bundle azu/ni.zsh@main
Using sheldon
[plugins.ni]
github = "azu/ni.zsh"
Manually
curl https://raw.githubusercontent.com/azu/ni.zsh/main/ni.zsh > ni.zsh
source ni.zsh
:warning: Troubleshooting: command not found: compdef
ni.zsh
requires compdef
command.
If you got command not found: compdef
error, you need to enable compinit
in your .zshrc
.
# .zshrc
# load compdef
autoload -Uz compinit && compinit
# load ni.zsh
source /path/to/ni.zsh
Supported Package Manager
- npm
- yarn (yarn v1)
- yarn-berry (yarn v2+)
- pnpm
- bun
Requirements
- zsh
- require to enable
autoload -Uz compinit && compinit
- require to enable
- jq
- npm-check if you want to use
npm
+ni upgrade-interactive
Usage
ni -- install current package.json
ni add <pkg> -- add package
ni remove <pkg> -- remove package
ni run <script> -- run scripts
ni test -- run test script
ni upgrade [<pkg>] -- upgrade packages
ni upgrade-interactive -- upgrade package interactively
ni exec <command> -- execute command
ni dlx <pkg> -- download package and execute command
Command Table
ni | npm | yarn | yarn-berry | pnpm | bun |
---|---|---|---|---|---|
ni | npm install | yarn install | yarn install | pnpm install | bun install |
ni add <pkg> | npm install | yarn add | yarn add | pnpm add | bun add |
ni remove <pkg> | npm uninstall | yarn remove | yarn remove | pnpm remove | bun remove |
ni run <script> | npm run | yarn run | yarn run | pnpm run | bun run |
ni test | npm run test | yarn run test | yarn run test | pnpm run test | bun run test |
ni upgrade | npm upgrade | yarn upgrade | yarn up | pnpm update | bun update |
ni upgrade-interactive | npm-check ^1 | yarn up --interactive "*" | yarn upgrade-interactive | pnpm update -i | ○ |
ni exec <command> | npm exec --no | yarn <command> | yarn exec | pnpm exec | bunx |
ni dlx <pkg> | npx | npx | yarn dlx | pnpm dlx | bunx |
- ^1: require npm-check globally.
Notes
- Installing devDependencies:
ni add --dev <pkg>
- Additional arguments for
ni run
:ni run dev --port 8080
- Update specific package:
ni upgrade <pkg>
Auto Complete
ni <TAB>
Experimental
Supply chain risk detections
You can integrate https://socket.dev/ to detect supply chain attacks.
https://github.com/azu/ni.zsh/assets/19714/d6251e40-043f-4450-b9f2-716a712ae71b
If NI_SOCKETDEV_TOKEN
is set, ni add
will check the package is safe or not before installing.
export NI_SOCKETDEV_TOKEN="<socket-token>"
How to get socket.dev token?
- Go to https://socket.dev/
- Sign up
- Create a project
- Visit
https://socket.dev/dashboard/org/gh/{user}/settings/api-tokens
- Copy token
License
MIT © azu