一個 ni 搞定安裝?!用 ni 來取代你的 npm/yarn/pnpm/bun 吧!

各種套件管理器

前言

你有想過一個問題嗎?每次拿到別人開發的新專案時,到底要輸入 npm install 還是 yarn install 呢?是不是覺得套件管理安裝器超級無敵多,每次都要打開專案看才能夠知道要用哪一個呢?所以這一篇我將會介紹一個很特別的套件安裝管理器,也就是 ni

ni 是什麼?

ni 是什麼呢?ni 是由知名大神 antfu 所開發的一套套件管理器,這時候你可能會想說

「蛤!?又要學新的指令了嗎?!」

先別急,讓我慢慢介紹一下。

首先 ni 它這個套件管理器可以讓你在任何專案內使用,你不用再去打開專案看要用哪一個套件管理器,只需要輸入 ni 就可以輕輕鬆鬆安裝完畢,什麼意思呢?

舉例來講,當你拿到一個專案時,你可能需要先打開專案,然後看一下這個專案使用什麼套件管理器,如果是 npm 你就會輸入 npm install 來還原專案,反之若是 yarn 你就會輸入 yarn install 來還原專案。

但是現在有非常多的套件管理器,如 pnpmbun 等等,而這些套件管理器都有自己的安裝指令,像是 yarn 安裝套件時是輸入 yarn add [plugin name],而 npm 則是 npm install [plugin name] 等等,而我們的腦袋記憶非常有限,因此 ni 就可以幫助到我們解決這問題了!

如何使用 ni

首先,你必須先安裝 ni 在你的 Global 環境(你的電腦)上,所以要輸入以下指令:

1
npm i -g @antfu/ni

接著你只要打開終端機,並 cd(移動) 到你的專案下後輸入輸入 ni,你會發現 ni 會自動幫你安裝好套件,讓你打開專案時就可以直接開始開發了,是不是超級神奇呢?

ni

那麼 ni 的原理是什麼呢?ni 會自動去檢查你的 lockfile 來決定安裝模式,那什麼是 lockfile 呢?也就是你專案內常常會看到的 package-lock.json、pnpm-lock.yaml、package-lock.json、bun.lockb。

如果沒有 lockfile 的話,ni 也會自動去檢查你 package.json 的 packageManager 進而決定要用哪一種安裝模式,但理論上來講你應該不會沒有 lockfile 的。

ni 指令

那麼 ni 有哪些指令呢?分別是…

  • ni
  • nr
  • nx
  • nu
  • nun
  • nci
  • na

看起來非常的簡寫很難懂,每個指令都有屬於它的對應指令,因此這邊讓我們來一一認識一下吧。

ni

ni 代表著 install 的意思,因此當你輸入 ni 的時候等同於輸入以下指令

1
2
3
4
npm install
yarn install
pnpm install
bun install

如果是安裝套件的話,你可以直接輸入 ni [plugin name],這邊舉例安裝 express

1
ni express

而這對應的指令則是以下

1
2
3
4
npm install express
yarn add express
pnpm add express
bun add express

nr

nr 代表著 run 的意思,因此當你輸入 nr 的時候等同於輸入以下指令

1
2
3
4
npm run
yarn run
pnpm run
bun run

因此如果你是要跑 vue-cli 的 dev 環境的話,就會是輸入 nr dev,而這指令對應以下

1
2
3
4
npm run dev
yarn run dev
pnpm run dev
bun run dev

題外話,如果你有打算指定 port 的話,則是輸入 nr dev --port 3000

nx

nx 代表著 execute 的意思,也就是使用 npxdlx 的意思,因此當你輸入 nx create-nuxt-app example (Nuxt.js 建立的指令) 的時候等同於輸入以下指令

1
2
3
npx create-nuxt-app example
yarn dlx create-nuxt-app example
pnpx create-nuxt-app example

而這邊不包含 bun

nu

nu 代表著 upgrade 的意思,也就是升級啦!因此對應的指令是以下

1
2
3
4
npm update
yarn upgrade
yarn up
pnpm update

而這邊一樣不包含 bun

nun

nun 代表著 uninstall 的意思,也就是卸載,假使你要移除 pixi 的時候,就會輸入 nun pixi,因此對應的指令是以下

1
2
3
4
npm uninstall pixi
yarn remove pixi
pnpm remove pixi
bun remove pixi

unu 也可以用來移除 Global 環境的套件,例如 unu -g @vue/cli

1
2
3
4
npm uninstall -g @vue/cli
yarn global remove @vue/cli
pnpm remove -g @vue/cli
bun remove -g @vue/cli

nci

nci 代表著 clean install 的意思,也就是清除 node_modules 並重新安裝,因此對應的指令是以下

1
2
3
4
npm ci
yarn install --frozen-lockfile
pnpm install --frozen-lockfile
bun install --no-save

na

na 代表著 agent alias 的意思,也就是代理別名,但這個指令其實我非常少用,也不太確定它的使用場景,因此就不介紹了,下次若有使用到的話,再來補充。

以上差不多就是 ni 的所有指令,希望你可以徹底解脫 npmyarnpnpmbun 的煩惱,讓你可以更專注在開發上。

PowerShell 的問題

那麼由於本身 Window 的 PowerShell 內建有 ni 指令,請注意內建的 ni 指令是 New-Item 的意思,因此如果你要使用 ni 指令的話,需要額外調整的,因此請在 PowerShell 終端機中輸入以下指令

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

但要輸入這個指令前建議先確定一下自己是否會用到內建的 ni 指令,如果不會的話,就可以直接輸入這個指令,如果會的話,就會需要額外調整 PowerShell 的設定,而這邊就會建議觀看官方文件囉。

參考文獻

Liker 讚賞

這篇文章如果對你有幫助,你可以花 30 秒登入 LikeCoin 並點擊下方拍手按鈕(最多五下)免費支持與牡蠣鼓勵我。
或者你可以也可以請我「喝一杯咖啡(Donate)」。

Buy Me A Coffee Buy Me A Coffee

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ