好的,這是一篇針對台灣讀者的部落格文章,介紹如何使用 nvm
管理 Node.js 版本。
Node.js 版本管理神器:nvm (Node Version Manager) 入門教學,讓你輕鬆切換 Node.js 版本!
哈囉大家好!身為一位前端工程師,Node.js 絕對是我們的好夥伴。但你有沒有遇過這種情況:手上的專案使用的 Node.js 版本不一樣,每次都要手動切換,超麻煩的! 或是新版的node.js 與舊專案相衝,怎麼辦?
別擔心!今天就來跟大家介紹一個超好用的工具:nvm (Node Version Manager)。它可以讓你輕鬆管理多個 Node.js 版本,並在不同專案之間快速切換。對於前端工程師來說,簡直是救星!
為什麼需要 nvm?
在深入了解 nvm 之前,我們先來看看為什麼需要它:
- 專案需求不同: 不同的專案可能需要不同版本的 Node.js。例如,一個舊專案可能使用 Node.js 12,而一個新專案可能需要 Node.js 16 或更新的版本。
- 測試與相容性: 在開發過程中,你可能需要測試你的程式碼在不同 Node.js 版本下的相容性,以確保其穩定性。
- 避免衝突: 直接使用系統安裝的 Node.js 版本,可能會與其他工具或套件產生衝突。
有了 nvm,你可以輕鬆解決這些問題,讓開發過程更加順暢。
什麼是 nvm?
簡單來說,nvm 是一個 Node.js 的版本管理器。它可以讓你:
- 安裝多個 Node.js 版本
- 在不同版本之間快速切換
- 設定預設使用的 Node.js 版本
- 管理全域安裝的 npm 套件
nvm 的設計是per-user,也就是說,每個使用者可以有自己的 nvm 環境,不會互相影響。這點非常重要,因為它可以避免不同使用者之間的版本衝突。
nvm 安裝與設定
接下來,我們來看看如何安裝和設定 nvm。
1. 安裝 nvm
最簡單的安裝方式是使用官方提供的install script。打開你的終端機,複製貼上下面的指令並執行:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
或是使用 wget:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
這個 script 會自動下載 nvm 並設定好環境變數。
安裝小撇步:
- 如果你發現安裝 script 修改了錯誤的 profile 檔案(例如,你希望修改
.zshrc
,但它卻修改了.bashrc
),你可以設定$PROFILE
環境變數,再重新執行安裝 script。例如:PROFILE=~/.zshrc curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
- 如果你想延後使用
nvm
,可以在指令後面加上--no-use
。這樣 nvm 安裝好之後,不會自動啟用。你可以稍後再手動使用nvm use
指令。
2. 設定環境變數
安裝完成後,你需要重新啟動你的終端機,或是執行以下指令,讓環境變數生效:
- bash:
source ~/.bashrc
- zsh:
source ~/.zshrc
- ksh:
. ~/.profile
3. 驗證安裝
輸入以下指令,確認 nvm 是否安裝成功:
command -v nvm
如果安裝成功,終端機應該會顯示 nvm
。
疑難排解:
- 如果你在 Linux 上執行安裝 script 後,出現
nvm: command not found
的錯誤,請先關閉目前的終端機,再開啟一個新的終端機,然後重新驗證。 - 如果你在 macOS 上執行安裝 script 後,出現
nvm: command not found
的錯誤,請確認你的系統是否有.bash_profile
或.bashrc
檔案。如果沒有,請建立一個,然後重新執行安裝 script。 - 如果還是不行,可以嘗試手動將以下程式碼片段加到你的 profile 檔案中:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nvm 基本使用
nvm 安裝完成後,就可以開始使用它來管理 Node.js 版本了。
1. 安裝 Node.js 版本
使用 nvm install
指令來安裝 Node.js 版本。例如,要安裝最新的 Node.js 版本,可以執行:
nvm install node
如果要安裝特定版本,例如 16.17.0,可以執行:
nvm install 16.17.0
nvm 會自動下載、編譯(如果需要),並安裝指定的 Node.js 版本。
2. 切換 Node.js 版本
使用 nvm use
指令來切換 Node.js 版本。例如,要使用 Node.js 16.17.0,可以執行:
nvm use 16.17.0
執行完畢後,你的終端機就會使用指定的 Node.js 版本。你可以輸入 node -v
來確認。
3. 設定預設 Node.js 版本
使用 nvm alias default
指令來設定預設使用的 Node.js 版本。例如,要將 Node.js 16.17.0 設定為預設版本,可以執行:
nvm alias default 16.17.0
這樣,每次開啟新的終端機時,都會自動使用預設的 Node.js 版本。
4. 列出已安裝的 Node.js 版本
使用 nvm ls
指令來列出所有已安裝的 Node.js 版本:
nvm ls
5. 列出可安裝的 Node.js 版本
使用 nvm ls-remote
指令來列出所有可以安裝的 Node.js 版本:
nvm ls-remote
6. 其他常用指令
nvm uninstall <version>
:移除指定的 Node.js 版本。nvm current
:顯示目前使用的 Node.js 版本。nvm which <version>
:顯示指定 Node.js 版本的安裝路徑。
進階應用:.nvmrc 檔案
nvm 提供了一個非常方便的功能,就是使用 .nvmrc
檔案來指定專案使用的 Node.js 版本。
- 建立 .nvmrc 檔案: 在你的專案根目錄下,建立一個名為
.nvmrc
的檔案。 - 指定 Node.js 版本: 在
.nvmrc
檔案中,輸入你希望專案使用的 Node.js 版本。例如,要指定使用 Node.js 16.17.0,就在.nvmrc
檔案中輸入16.17.0
。 - 使用 nvm use: 在專案目錄下執行
nvm use
指令。nvm 會自動讀取.nvmrc
檔案,並切換到指定的 Node.js 版本。
有了 .nvmrc
檔案,你就可以確保每個專案都使用正確的 Node.js 版本,而不需要每次都手動切換。
加強小技巧:
- 在
.nvmrc
檔案中可以使用lts/*
來指定使用最新的 LTS (Long Term Support) 版本。 - 在
.nvmrc
檔案中可以使用node
來指定使用最新的 Node.js 版本。
nvm 的優點
- 版本管理: 輕鬆管理多個 Node.js 版本,避免版本衝突。
- 專案隔離: 每個專案都可以有自己的 Node.js 版本,互不影響。
- 方便性: 快速切換 Node.js 版本,提高開發效率。
- .nvmrc 支援: 使用
.nvmrc
檔案,確保每個專案都使用正確的 Node.js 版本。
常見問題與解決方案
- nvm 指令無法使用: 檢查環境變數是否設定正確,並重新啟動終端機。
- 安裝 Node.js 版本失敗: 清除 nvm cache,再重新安裝:
nvm cache clear
。 - npm 版本與 Node.js 版本不相容: 執行
nvm install-latest-npm
來更新 npm 版本。
個人使用心得
我使用 nvm 已經好幾年了,它真的大大提升了我的開發效率。以前每次切換專案,都要手動修改環境變數,超麻煩的。現在有了 nvm,只需要一個指令,就可以輕鬆切換 Node.js 版本。而且 .nvmrc
檔案也讓我省了很多麻煩,不用擔心專案使用的 Node.js 版本不對。
錯誤排除小技巧:
- 如果安裝過程出現問題,可以嘗試加上
-s
參數,強制從原始碼編譯安裝:nvm install -s <version>
- 如果遇到權限問題,可以嘗試修改 nvm 目錄的權限:
sudo chmod -R 777 ~/.nvm
(注意:這可能會降低安全性,請謹慎使用)
總結
nvm 是一個非常實用的 Node.js 版本管理工具,可以幫助你輕鬆管理多個 Node.js 版本,並提高開發效率。如果你還沒有使用 nvm,趕快試試看吧!相信你一定會愛上它的!
希望這篇文章對你有幫助!如果你有任何問題,歡迎在下方留言。
參考閱讀
https://github.com/nvm-sh/nvm