跳至主要内容

在專案中統一套件管理指令:ni 工具介紹

目錄

前言

您是否曾經在 Yarn 專案中誤用 npm i,或者在不同專案間切換時,總是要回想該用哪個套件管理器的指令?@antfu/ni(以下簡稱 ni)正是為了解決這些困擾而生的工具。它能自動偵測您專案當前使用的套件管理器,讓您可以用一套統一的指令(如 ni, nr, nun 等)完成安裝、執行、移除等操作,大幅提升開發效率與體驗。

安裝

要開始使用 ni 系列工具,您可以透過 npm 進行全域安裝:

npm i -g @antfu/ni

安裝完成後,您就可以在任何專案中使用 ni 相關指令。

主要指令

@antfu/ni 套件提供了一系列簡潔易用的指令,對應不同套件管理器的常用操作。

表格如下

指令功能範例npm 指令yarn 指令pnpm 指令bun 指令備註
ni安裝依賴套件ni vitenpm i viteyarn add vitepnpm add vitebun add vite自動偵測套件管理器
ni安裝開發依賴ni @types/node -Dnpm i @types/node -Dyarn add @types/node -Dpnpm add -D @types/nodebun add -d @types/node
ni -P正式環境依賴ni -Pnpm i --omit=devyarn install --productionpnpm i --productionbun install --production
ni --frozen鎖定檔安裝ni --frozennpm ciyarn install --frozen-lockfile (Yarn 1)
yarn install --immutable (Yarn Berry)
pnpm install --frozen-lockfilebun install --frozen-lockfile
ni -g全域安裝套件ni -g eslintnpm i -g eslintyarn global add eslint (Yarn 1)pnpm add -g eslintbun add -g eslint使用預設套件管理器
ni -i互動式安裝套件ni -i----互動式選擇要安裝的套件
nr執行腳本nr dev --port=3000npm run dev -- --port=3000yarn run dev --port=3000pnpm run dev --port=3000bun run dev --port=3000
nr互動式執行腳本nr-支援 npm-scripts-info 規範--互動式選擇腳本
nr -重跑上一個腳本nr -----
nr --completion啟用腳本補全nr --completion >> ~/.bashrc-僅支援 bash--
nlx臨時下載並執行nlx vitestnpx vitestyarn dlx vitestpnpm dlx vitestbunx vitest
nup升級所有套件nupnpm upgradeyarn upgrade (Yarn 1)
yarn up (Yarn Berry)
pnpm updatebun update
nup -i互動式升級套件nup -i-yarn upgrade-interactive (Yarn 1)
yarn up -i (Yarn Berry)
pnpm update -i-npm、bun 不支援
nun解除安裝套件nun webpacknpm uninstall webpackyarn remove webpackpnpm remove webpackbun remove webpack
nun互動式移除套件nun----單個互動式選擇
nun -m互動式多個移除nun -m----多個互動式選擇
nun -g全域移除套件nun -g silentnpm uninstall -g silentyarn global remove silentpnpm remove -g silentbun remove -g silent
nci清理並安裝ncinpm ciyarn install --frozen-lockfilepnpm install --frozen-lockfilebun install --frozen-lockfileCI/CD適用
na套件管理器別名na run foonpm run fooyarn run foopnpm run foobun run foo
na顯示套件管理器na顯示 npm顯示 yarn顯示 pnpm顯示 bun

全域參數(Global Flags)

參數說明範例
?顯示將要執行的真實指令ni vite ?
-C指定目錄後執行指令ni -C packages/foo vite
-v顯示版本號ni -v
-h顯示說明文件ni -h

設定方式

設定檔 (~/.nirc)

; ~/.nirc
defaultAgent=npm # 沒有鎖定檔案時預設使用套件管理器
globalAgent=npm # 全域安裝時使用的套件管理器

環境變數

# ~/.bashrc
export NI_CONFIG_FILE="$HOME/.config/ni/nirc"
export NI_DEFAULT_AGENT="npm"
export NI_GLOBAL_AGENT="npm"

運作原理

ni 的核心機制是偵測專案中的鎖定檔案(yarn.lock, pnpm-lock.yaml, package-lock.json, bun.lockb)或 package.json 中的 packageManager 欄位。它利用 package-manager-detector 套件來判斷當前專案所使用的套件管理器,然後將您的 ni 系列指令轉換為該管理器對應的原生指令來執行。