決定也在電腦的 Windows 系統裡裡安裝 Node.js 了。(之前我都在 WSL2 或者用 Multipass 建立的虛擬機裡用)
版本管理器
安裝前,當然還是先裝版本管理器啦 (version manager)。
版本管理器可以方便你安裝不同版本的 Node.js, 在不同的 projects 裡方便地切換使用,相當方便。
Node.js 上最有名的大概是 nvm
(Node Version Manager), 可是它不支援 Windows. 而且之前在 macOS 上用過 nvm
, 令我打開 Terminal 的時間大幅增長,得另外修改 Shell 的 rc 檔才解決,印象不佳。
記得同類型軟件 fnm
三個平台 (Windows, macOS, Linux) 都能用,於是這次便使用 fnm
安裝了。
安裝 fnm
官網寫 Windows 可以透過 Scoop
, Chocolate
, Cargo
安裝,但我都不喜歡。
最後選擇是安裝使用編譯好的執行檔(乾淨又方便呀) :
在這裡 https://github.com/Schniz/fnm/releases 下載最新版的 fnm-windows.zip
。
下載好,把裡面的 fnm.exe
解壓縮去你想放置的地方。我是放在 C:\Program Files\fnm-v1.31.0
裡。
然後把上面放置了 fnm.exe
的路徑放在 PATH
上。如果你不會設置 PATH 的話,可以參考這裡和這裡。
安裝 Node.js
設置好 PATH 後,打開/重開 Terminal, 輸入 fnm -version
就可以看到安裝好的 fnm
版本了。
PS C:\Users\oldestdream> fnm --version
fnm 1.31.0
然後我想安裝最新的長期支援版本 (即 LTS 版)。參考官網,目前是 v16.14.2
。
通過 fnm list-remote
查看可以安裝的 Node.js 版本。
目前最新的版本為 v16.14.2
, 於是便通過 fnm install v16.14.2
來下載了。
然後可以用 fnm list
來看目前已經安裝了的版本:
PS C:\Users\oldestdream> fnm list
* v16.14.2 default
* system
下載了的 Node.js 是放在這路徑:
C:\Users\oldestdream\AppData\Roaming\fnm
修改 PowerShell profile
你重開 Terminal 輸入 node -v
查看安裝後的版本,會發現找不到 node
, 原因是我們需要在載入 Shell 時,先運行 fnm env
所提供的設置。
node: The term 'node' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
做法也很簡單,在 PowerShell 裡輸入 $PROFILE
。會見到一條路徑:
PS C:\Users\oldestdream> $PROFILE
C:\Users\oldestdream\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
你很可能找不到這個文件,路徑也不存在。
不存在的話,就要自己根據這路徑創造那文件出來了。
文件內加入下面這句即可:
fnm env --use-on-cd | Out-String | Invoke-Expression
記得保存喲~
測試
重開 Terminal (PowerShell),試試 node -v
和 npm -v
,都能使用了。
PS C:\Users\oldestdream> node -v
v16.14.2
PS C:\Users\oldestdream> npm -v
8.5.0
cmd 設定
因為我日常是使用 PowerShell 而非 cmd
, 所以我也不想搞。
有興趣的話,可以參考官方的做法:
https://github.com/Schniz/fnm#windows-command-prompt-aka-batch-aka-wincmd