/ni.zsh

Alternative `ni` written in zsh: npm/yarn/pnpm/bun with the same command

Primary LanguageShellMIT LicenseMIT

Alternative ni written in zsh

ni - use the right package manager

You can run npm/yarn/pnpm/bun with same command!

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

⚠️ 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

Requirements

  • zsh
    • require to enable autoload -Uz compinit && compinit
  • 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

Notes

  • Installing devDependencies: ni add --dev <pkg>
  • Addtional 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.

Socket.dev Integration

Aug-26-2023.09-51-59_optimized.mp4

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?

  1. Go to https://socket.dev/
  2. Sign up
  3. Create a project
  4. Visit https://socket.dev/dashboard/org/gh/{user}/settings/api-tokens
  5. Copy token

License

MIT © azu