若要直接查看安裝 Node.js 的正確姿勢(shì)抽莱,請(qǐng)拉到文章最后一節(jié)。
安裝 Node
一般情況下可婶,你第一次安裝會(huì)這樣:
首先到 Node.js 官網(wǎng)下載壓縮包泼舱。下載得到 node-vXxx.tar.xz
,然后解壓到 /opt/
(適用于共享用戶)或 /usr/local/
(適用于用戶個(gè)人資料)裕循。以 /opt/
為例:
$ cd ~/Download
$ tar -xvf node-v10.16.3-linux-x64.tar.xz
$ sudo mv node-v10.16.3-linux-x64 /opt/node
然后將 /opt/node/bin
添加到 PATH
環(huán)境變量中臣嚣,這樣就可以從任意終端中執(zhí)行 npm
命令了净刮。確保環(huán)境變量生效可以執(zhí)行命令看是否可以查看 node 版本。
$ node -v
這種安裝方式的問(wèn)題在于要更新 Node.js 版本時(shí)硅则,要再次手動(dòng)下載壓縮包淹父,替換掉原安裝路徑的內(nèi)容,并且不小心的話會(huì)把已下載的全局 lib 給替換沒(méi)了怎虫。
于是暑认,你在官網(wǎng)上仔細(xì)查看,發(fā)現(xiàn)了 Installing Node.js via package manager大审,頓時(shí)感覺(jué)這包管理器安裝才是正經(jīng)辦法蘸际。
第二次安裝循著指引:
Debian and Ubuntu based Linux distributions, Enterprise Linux/Fedora and Snap packages
Official Node.js binary distributions are provided by NodeSource.
然后根據(jù)指導(dǎo)進(jìn)行安裝:
# Using Ubuntu
$ curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
$ sudo apt-get install -y nodejs
這種安裝方式下,升級(jí)不用手動(dòng)下載替換了徒扶,可以使用一個(gè) npm 模塊 n
來(lái)升級(jí)粮彤,可以參見(jiàn):升級(jí)node.js和npm。這里不具體展開(kāi)姜骡,因?yàn)樵谶@之前就有另外的問(wèn)題讓你頭疼导坟。
問(wèn)題
無(wú)法下載
你安裝好 Node.js 之后,準(zhǔn)備安裝一個(gè)包圈澈,常因?yàn)榫W(wǎng)絡(luò)原因遲遲無(wú)法完成下載惫周。這時(shí)候,你需要淘寶 NPM 鏡像康栈,使用方法很簡(jiǎn)單:
- 可以使用定制的 cnpm (gzip 壓縮支持) 命令行工具代替默認(rèn)的 npm:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
- 或者直接通過(guò)添加 npm 參數(shù) alias 一個(gè)新命令:
alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"
# Or alias it in .bashrc or .zshrc
$ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc
提示無(wú)權(quán)限
npm 可以把包安裝到全局目錄闯两,也可以安裝到本地本地,常用的工具類的包通常是在命令行中作為命令使用谅将,如果不安裝到全局目錄則在執(zhí)行命令時(shí)要加上命令的路徑,很不方便重慢。
當(dāng)你嘗試全局安裝某個(gè)包的時(shí)候饥臂,等待許久最終卻看到 EACCES 錯(cuò)誤,提示你沒(méi)有權(quán)限寫入用于存儲(chǔ)全局包和命令的目錄似踱,真是令人崩潰隅熙。
兩種解決辦法,一種是修改全局目錄為當(dāng)前用戶有權(quán)限的目錄核芽,具體可參考:更改npm全局包安裝目錄的解決方案囚戚。
另一種則是既然沒(méi)有權(quán)限,那加上 sudo 來(lái)執(zhí)行吧:
$ sudo npm install -g xxxxx
sudo: npm:command not found
會(huì)提示找不到命令轧简,需要參考《[譯] sudo后使用別名》進(jìn)行修改:
$ alias sudo='sudo '
這樣就可以了驰坊,但每次安裝都要 sudo 其實(shí)并不愉快。事實(shí)上哮独,我們一開(kāi)始就可以選擇更合適的 Node.js 的安裝方法拳芙。
NVM
NVM: 全稱是 Node Version Manager, 也就是 Node 版本管理器察藐。
如果你已經(jīng)安裝過(guò)了 Node,最好先把原來(lái)的卸載舟扎。
1. 卸載 Node, 可能需要 root 權(quán)限.
$ sudo apt-get remove nodejs
2. 移除你之前的全局 node_modules 包.
#執(zhí)行前請(qǐng)確認(rèn)這個(gè)包是否存在這個(gè)位置
$ sudo rm -rf /usr/lib/node_moudles
3. 安裝 NVM
查看 NVM 的 Github 倉(cāng)庫(kù):
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
然后設(shè)置環(huán)境變量:
$ 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
4. 使用 NVM
# 將安裝最新版本
$ nvm install node
# 列出可安裝版本分飞,選擇安裝某一版本
$ nvm list
$ nvm install 12.14.1 # or 10.10.0, 8.9.1, etc
NVM 最大的好處就是你可以安裝多個(gè)版本的 node 到你的系統(tǒng)里,直接一條命令就可以切換版本睹限。
$ nvm use v13.6.0
更多的使用說(shuō)明可直接查看 Github 倉(cāng)庫(kù)的 README 文檔譬猫。
現(xiàn)在查看使用 NVM 下載的 node 命令的目錄:
$ where node
/home/mupceet/.nvm/versions/node/v13.6.0/bin/node
可以看到現(xiàn)在使用的目錄都是在 Home 目錄下,權(quán)限問(wèn)題也就不成問(wèn)題了羡疗,再加上淘寶 NPM 鏡像染服,體驗(yàn)上就很舒服了。
參考鏈接
- Node.js 官網(wǎng)
- 升級(jí)node.js和npm
- 淘寶 NPM 鏡像
- 更改npm全局包安裝目錄的解決方案
- [譯] sudo后使用別名
- ubuntu中npm安裝全局插件提示沒(méi)有root管理員權(quán)限
- nvm-sh/nvm
原創(chuàng)文章來(lái)自個(gè)人博客 Mupceet