#package-manager #npm #ni #cli

bin+lib npack

使用正确的包管理器

17 个版本

0.0.19 2024 年 3 月 14 日
0.0.18 2024 年 3 月 8 日
0.0.17 2024 年 2 月 27 日
0.0.16 2024 年 1 月 31 日
0.0.14 2023 年 12 月 29 日

190操作系统

Download history 231/week @ 2024-03-08 46/week @ 2024-03-15 3/week @ 2024-03-22 63/week @ 2024-03-29 18/week @ 2024-04-05 1/week @ 2024-05-17

每月 843 次下载

MIT 许可协议

72KB
2K SLoC

ni

ni - 使用正确的包管理器

使用 Rust 语言重写,无运行时,无依赖,可安装和使用,参考 @antfu/ni,具体用法应与 @antfu/ni 保持一致

@antfu/ni

安装

使用 Cargo (Linux/macOS/Windows)

cargo install npack

使用脚本 (macOS/Linux)

对于 bash,zsh 和 fish shell,有一个自动安装脚本。

首先确保 curl 和 unzip 已经安装在你的操作系统上。然后执行

curl https://ni.zhazhazhu.me/install.sh | bash

npm · yarn · pnpm · bun


ni - 安装

ni

# npm install
# yarn install
# pnpm install
# bun install
ni vite

# npm i vite
# yarn add vite
# pnpm add vite
# bun add vite
ni @types/node -D

# npm i @types/node -D
# yarn add @types/node -D
# pnpm add -D @types/node
# bun add -d @types/node
ni --frozen

# npm ci
# yarn install --frozen-lockfile (Yarn 1)
# yarn install --immutable (Yarn Berry)
# pnpm install --frozen-lockfile
# bun install --no-save
ni -g eslint

# npm i -g eslint
# yarn global add eslint (Yarn 1)
# pnpm add -g eslint
# bun add -g eslint

# this uses default agent, regardless your current working directory

nr - 运行

nr dev --port=3000

# npm run dev -- --port=3000
# yarn run dev --port=3000
# pnpm run dev --port=3000
# bun run dev --port=3000
nr

# interactively select the script to run
# supports https://npmjs.net.cn/package/npm-scripts-info convention
nr -

# rerun the last command

nlx - 下载 & 执行

nlx vitest

# npx vitest
# yarn dlx vitest
# pnpm dlx vitest
# bunx vitest

nu - 升级

nu

# npm upgrade
# yarn upgrade (Yarn 1)
# yarn up (Yarn Berry)
# pnpm update
# bun update
nu -i

# (not available for npm & bun)
# yarn upgrade-interactive (Yarn 1)
# yarn up -i (Yarn Berry)
# pnpm update -i

nun - 卸载

nun webpack

# npm uninstall webpack
# yarn remove webpack
# pnpm remove webpack
# bun remove webpack
nun -g silent

# npm uninstall -g silent
# yarn global remove silent
# pnpm remove -g silent
# bun remove -g silent

nci - 清洁安装

nci

# npm ci
# yarn install --frozen-lockfile
# pnpm install --frozen-lockfile
# bun install --no-save

如果相应的节点管理器不存在,此命令将在安装过程中全局安装它。


na - 代理别名

na

# npm
# yarn
# pnpm
# bun
na run foo

# npm run foo
# yarn run foo
# pnpm run foo
# bun run foo

全局标志

# ?               | Print the command execution depends on the agent
ni vite ?

# -C              | Change directory before running the command
ni -C packages/foo vite
nr -C playground dev

# -v, --version   | Show version number
ni -v

# -h, --help      | Show help
ni -h

配置

; ~/.nirc

; fallback when no lock found
defaultAgent=npm # default "prompt"

; for global installs
globalAgent=npm
# ~/.bashrc

# custom configuration file path
export NI_CONFIG_FILE="$HOME/.config/ni/nirc"

如何使用?

ni 假定您使用 lockfiles(您应该这样做)

在运行之前,它将检测您的 yarn.lock / pnpm-lock.yaml / package-lock.json / bun.lockb,以了解当前包管理器(如果指定,则参考 packages.json 中的 packageManager 字段),并运行相应的命令。

故障排除

与 PowerShell 冲突

PowerShell 内置了一个别名 ni,用于 New-Item cmdlet。为了在当前 PowerShell 会话中删除别名以使用此包,请使用以下命令

'Remove-Item Alias:ni -Force -ErrorAction Ignore'

如果您想持久化更改,可以将它们添加到 PowerShell 配置文件中。配置文件路径可以通过 $profile 变量访问。ps1 配置文件通常可以在以下位置找到

  • PowerShell 5 (Windows PowerShell): C:\Users\USERNAME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
  • PowerShell 7: C:\Users\USERNAME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
  • VSCode: C:\Users\USERNAME\Documents\PowerShell\Microsoft.VSCode_profile.ps1

您可以通过将上述命令添加到您的配置文件中来使用以下脚本在shell启动时删除别名

if (-not (Test-Path $profile)) {
  New-Item -ItemType File -Path (Split-Path $profile) -Force -Name (Split-Path $profile -Leaf)
}

$profileEntry = 'Remove-Item Alias:ni -Force -ErrorAction Ignore'
$profileContent = Get-Content $profile
if ($profileContent -notcontains $profileEntry) {
  ("`n" + $profileEntry) | Out-File $profile -Append -Force -Encoding UTF8
}

nxnix 现在不再可用

我们将 nx/nix 重命名为 nlx 以避免与其他现有工具(例如 - nxnix)冲突。您始终可以在shell配置文件(如 .zshrc.bashrc 等)中重新设置它们的别名。

alias nx="nlx"
# or
alias nix="nlx"

依赖项

~6–19MB
~231K SLoC