fnm
)快速簡單的 Node.js 版本管理器,用 Rust 建構
?跨平台支援(macOS、Windows、Linux)
單一檔案、輕鬆安裝、即時啟動
注重速度
適用於.node-version
和.nvmrc
文件
對於bash
、 zsh
和fish
shell,有一個自動安裝腳本。
首先確保您的作業系統上已經安裝了curl
和unzip
。然後執行:
curl -fsSL https://fnm.vercel.app/install | bash
在 macOS 上,就像brew upgrade fnm
一樣簡單。
在其他作業系統上,升級fnm
與安裝它幾乎相同。為了防止 shell 設定檔中出現重複,請新增--skip-shell
來安裝指令。
--install-dir
設定要安裝的 fnm 的自訂目錄。預設值為$XDG_DATA_HOME/fnm
(如果未定義$XDG_DATA_HOME
則在 Linux 上它會回退到$HOME/.local/share/fnm
,在 MacOS 上回退到$HOME/Library/Application Support/fnm
)。
--skip-shell
根據$SHELL
中定義的目前使用者 shell,跳過將特定於 shell 的載入程式附加到 shell 設定檔。例如對於 Bash, $HOME/.bashrc
。 $HOME/.zshrc
用於 Zsh。對於魚 - $HOME/.config/fish/conf.d/fnm.fish
--force-install
使用安裝腳本的 macOS 安裝已被棄用,轉而使用 Homebrew 公式,但這會強制腳本無論如何都要使用它進行安裝。
例子:
curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir " ./.fnm " --skip-shell
brew install fnm
然後,為 fnm 設定 shell
winget install Schniz.fnm
scoop install fnm
然後,為 fnm 設定 shell
choco install fnm
然後,為 fnm 設定 shell
cargo install fnm
然後,為 fnm 設定 shell
PATH
環境變數中全域可用要刪除 fnm (?),只需刪除主目錄中的.fnm
資料夾即可。您還應該編輯 shell 配置以刪除對 fnm 的任何引用(即閱讀 Shell 設置,然後執行相反的操作)。
fnm 透過二進位檔案發送其補全:
fnm completions --shell < SHELL >
其中<SHELL>
可以是受支援的 shell 之一:
bash
zsh
fish
powershell
請按照您的 shell 說明安裝它們。
在開始使用 fnm 之前需要設定環境變數。這是透過評估fnm env
的輸出來完成的。
筆記
查看配置部分以啟用強烈建議的功能,例如自動版本切換。
將.node-version
新增至您的專案非常簡單:
$ node --version
v14.18.3
$ node --version > .node-version
請查看以下適用於您使用的 shell 的指南:
將以下內容新增至您的.bashrc
設定檔:
eval " $( fnm env --use-on-cd --shell bash ) "
將以下內容新增至您的.zshrc
設定檔:
eval " $( fnm env --use-on-cd --shell zsh ) "
建立~/.config/fish/conf.d/fnm.fish
並將此行加入其中:
fnm env --use-on-cd --shell fish | source
將以下內容新增至您的設定檔的末端:
fnm env -- use-on - cd -- shell powershell | Out-String | Invoke-Expression
~/.config/powershell/Microsoft.PowerShell_profile.ps1
notepad $profile
fnm 也受支持,但並未完全涵蓋。您可以為 cmd.exe 或 Windows Terminal 設定啟動腳本並附加以下行:
@ echo off
:: for /F will launch a new instance of cmd so we create a guard to prevent an infnite loop
if not defined FNM_AUTORUN_GUARD (
set " FNM_AUTORUN_GUARD = AutorunGuard "
FOR /f " tokens=* " %%z IN ('fnm env --use-on-cd') DO CALL %%z
)
用法與正常的 WinCMD 安裝非常相似,除了一些調整以允許從 cmder 啟動腳本呼叫之外。此範例假設CMDER_ROOT
環境變數設定為 Cmder 安裝的根目錄。然後你可以做這樣的事情:
:: %CMDER_ROOT%binfnm_init.cmd
@ echo off
FOR /f " tokens=* " %%z IN ('fnm env --use-on-cd') DO CALL %%z
:: %CMDER_ROOT%configuser_profile.cmd
call " %CMDER_ROOT% binfnm_init.cmd "
您也可以將%CMDER_ROOT%
替換為任何其他方便的路徑。
請參閱可用的配置選項以取得擴展配置文檔
請參閱可用命令以取得擴展使用文檔
歡迎 PR 嗎?
# Install Rust
git clone https://github.com/Schniz/fnm.git
cd fnm/
cargo build
cargo run -- --help # Will behave like `fnm --help`
cargo test