Kurt/FNM(Fast Node Manager) - Node 版本管理工具

Created Fri, 07 Oct 2022 16:11:52 +0800 Modified Wed, 02 Nov 2022 05:33:26 +0000
901 Words 4 min

FNM(Fast Node Manager) - 另一個好用的 Node 版本管理工具

今天逛 Github 時突然發現 fnm 這個專案,它類似 nvm,是用來管理 node 版本的工具。

簡單介紹一下這兩款管理工具,nvm,全名 Node Version Manager,是用 shell script 寫的,而 fnm,全名 Fast Node Manager 則是用 Rust,Rust 最近真的很熱門阿,而且我發現好像使用 Rust 做的工具都會被貼上 Fast 的標籤xD,因為它的執行速度真的很快,就連最近剛宣佈被 Adobe 收購的 Figma 都是用 Rust 寫的,然後在編譯成 WebAssembly(使用起來效率真的很高,難怪能夠成為主流)。

不過今天介紹這個 fnm,並不是說它 nvm 快多少,畢竟現在大家電腦都很好(x),主要是提供給大家不同的工具選擇囉~

趕緊來看看怎麼用吧!🚀

安裝

首先是安裝,這邊只會介紹 Linux 的部份喔(因為我是用 Linux🤣

curl -fsSL https://fnm.vercel.app/install | bash

或是透過 Homebrew

brew install fnm

或是 Cargo

cargo install fnm

環境設置

基本上當你使用以上指令安裝完之後,fnm 會自動幫你加上環境變數,不過如果你真的遇到它沒幫你加的話,記得在你的 .bashrc 或是 .zshrc 裡面加上以下設定:

export PATH=/home/kurt/.fnm:$PATH
eval "`fnm env`"

加完之後記得執行 source 指令讓他生效。

使用方式

Step 1

在你的專案資料夾新增一個檔案,檔名設為 .node-version,在這個檔案裡面指定你要的版本號,例如: v16.13.

可以使用這個指令來新增檔案:

echo "v16.13.0" > .node-version

Note: .node-version 也可以改為 .nvmrc,使用 .nvmrc 可以與 nvm 相容

Step 2

開啟 terminal,進到專案資料夾中,執行 fnm use 即可,如果你在這之前還沒下載過該版本的 node,這時 fnm 會詢問你是否下載,輸入 y 按下 enter 它就會開始幫你下載,下載完之後自動使用該版本喔!

當然你也可以先執行 fnm install

fnm use

自動偵測 Node 版本

當我們開發的專案一多,我們時常會需要切換來切換去的,就很容易遇到專案間使用的 Node 版本不同的問題,這時後要自己手動切換是滿惱人的,而且有時候忘記切換,還會想說怎麼專案出錯了Orz…

好險 fnm 提供一個很簡單的方式讓我們在切換專案時,可以自動偵測 Node 版本,也自動幫我們切換

你只需要把 .bashrc 或是 .zshrc 檔案裡面的

eval "`fnm env`"

改成

eval "$(fnm env --use-on-cd)"

實測如下:

如果你還沒安裝需要的版本,fnm 會先提醒你是否要安裝


沒錯,使用上就是這麼簡單,基本上你有用過 nvm 的話,fnm 使用起來也絕對一下就可以上手,想知道更多 fnm 提供的指令可以在 terminal 輸入 fnm,就會跳出所有可以用的指令囉!

fnm commands