簡(jiǎn)單談?wù)刵ode.js 版本控制 nvm和 n
今天的話(huà)題包括2個(gè)部分
1. node.js 下使用 nvm 或者 n 來(lái)進(jìn)行版本控制
2. nvm 安裝node.js 版本后,重啟終端 node , npm 環(huán)境變量失效
第一部分 用什么來(lái)管理 node.js 版本
首先應(yīng)該歡呼慶祝一下 node.js 終于發(fā)布了有歷史意義的正式版 1.0 ,雖然我們看到的是V4.0,其實(shí)他就是node.js 真正意義的 1.0, io.js 不負(fù)眾望,完成了它的使命.
回頭看這幾年node.js 以及 io.js 的發(fā)展速度,各種版本的迭代發(fā)布,我們很有必要用一個(gè) node.js 的版本管理工具來(lái)控制當(dāng)前系統(tǒng)的 node.js 版本.
為什么這樣做?
在新的版本中已經(jīng)用上了最新的V8引擎,ES 6的所有新特性一展身手,你能忍得住嗎?
但是,如果你魯莽升級(jí),第一個(gè)問(wèn)題是 你的開(kāi)發(fā)環(huán)境和線(xiàn)上發(fā)布環(huán)境可能不一樣,那么后果就不用多少了,出了問(wèn)題 等著老板來(lái)鞭尸吧.
第二個(gè)問(wèn)題 可能是之前的一些開(kāi)源包需要重新編譯,尤其是 c++ 模塊寫(xiě)的.
所以,你需要一個(gè) node.js 的版本管理軟件
現(xiàn)在流行的 node.js 版本管理有哪些?
nvm
我們使用 brew 安裝 nvm
brew install nvm
這里要注意
brew 安裝后一定要在你的 bash 或者 zsh 配置文件中設(shè)置一下,否則 當(dāng)你重新啟動(dòng)終端,你會(huì)發(fā)現(xiàn) node ,npm 環(huán)境變量都失效了
這里要穿插說(shuō)一下我們要分享的第二個(gè)話(huà)題
nvm 重啟后終端 node ,npm 失效的解決方案
如果你使用了上面的 brew 的安裝方法
當(dāng)安裝成功后,請(qǐng)按照如下操作設(shè)置你的 shell 配置文件
brew info nvm
你會(huì)看到下面的輸出幫助信息
nvm: stable 0.26.1 (bottled), HEAD Manage multiple Node.js versions https://github.com/creationix/nvm /usr/local/Cellar/nvm/0.26.1 (3173 files, 56M) * Poured from bottle From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nvm.rb ==> Caveats Add NVM's working directory to your $HOME path (if it doesn't exist): mkdir ~/.nvm Copy nvm-exec to NVM's working directory cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ Add the following to $HOME/.bashrc, $HOME/.zshrc, or your shell's equivalent configuration file: export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh Type `nvm help` for further information. Bash completion has been installed to: /usr/local/etc/bash_completion.d
我們需要按照上面提供的方法,首先在用戶(hù)更目錄下 創(chuàng)建 .nvm 文件
mkdir ~/.nvm
然后把 nvm-exec 文件拷貝到你剛才新建的 .nvm 目錄下
cp $(brew --prefix nvm)/nvm-exec ~/.nvm/
然后去編輯你的 bash 配置文件 $HOME/.bashrc ,如果你 使用 zsh 那么編輯 $HOME/.zshrc 配置文件
nano ~/.bashrc
或
nano ~/.zshrc
把下面的內(nèi)容粘貼進(jìn)去
export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh
最后讓你的 shell 配置及時(shí)生效
source ~/.bashrc
或
`source ~/.zshrc'
最后你就不會(huì)再出現(xiàn)關(guān)閉終端重啟,或者重啟機(jī)器發(fā)現(xiàn) node ,npm 等系統(tǒng)環(huán)境變量失效的問(wèn)題了.
nvm 和 n 的區(qū)別
nvm 類(lèi)似于 Python 的 virtualenv 或者 Ruby 的 rvm ,它是一個(gè)獨(dú)立安裝的軟件
n 其實(shí)是一個(gè) npm 全局的開(kāi)源包 ,需要使用 npm 來(lái)全局安裝
n 更加輕巧,但是 nvm 更加獨(dú)立.
假如你有一臺(tái)新帶電腦,如果你想使用 版本管理,那么 nvm 是你的選擇,因?yàn)樗莫?dú)立的軟件,安裝后你可以隨意下載切換你需要的版本.
但是 n 是依賴(lài)在 npm 下的一個(gè)包,也就是說(shuō) 你的電腦環(huán)境還沒(méi)有 node / npm 的時(shí)候,你還用不了 n .
所以在使用的時(shí)候,大家可以針對(duì)自己的情況權(quán)衡.我本人使用 nvm 來(lái)控制 node 版本.
nvm 使用
查看可以安裝的版本
nvm ls-remote
查看已經(jīng)安裝的版本
nvm ls
安裝一個(gè)指定的版本
nvm install <version>
上面的 version 可以指定你在 nvm ls-remote 里面列出來(lái)的版本號(hào)即可
刪除指定版本
nvm use <version>
n 的安裝
npm install -g n
當(dāng)然,你還可以去 github 下載你的源代碼自己本地編譯
$ git clone https://github.com/visionmedia/n.git $ cd n $ [sudo] make install n 安裝指定版本 n stable/laster/< version>
在 n 后面更一個(gè)標(biāo)識(shí) stable 標(biāo)識(shí)最新穩(wěn)定版, laster 標(biāo)識(shí)最新版 ,<version> 就是你可以具體指定一個(gè)版本號(hào)
n 使用一個(gè)版本 n use <version> n 刪除一個(gè)版本 n rm <version>
相關(guān)文章
node 使用multer中間件上傳報(bào)錯(cuò)Unexpected end of fo
再前幾天還是可以正常上傳,但今天運(yùn)行出現(xiàn)該報(bào)錯(cuò),下面通過(guò)場(chǎng)景分析給大家介紹node使用multer中間件上傳,報(bào)錯(cuò)Unexpected end of form的解決方案,感興趣的朋友一起看看吧2025-03-03
Express之get,pos請(qǐng)求參數(shù)的獲取
本篇文章主要介紹了Express之get,pos請(qǐng)求參數(shù)的獲取的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05
利用node.js如何搭建一個(gè)簡(jiǎn)易的即時(shí)響應(yīng)服務(wù)器
這篇文章主要介紹了利用node.js如何搭建一個(gè)簡(jiǎn)易的即時(shí)響應(yīng)服務(wù)器的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-05-05
nodejs中關(guān)于mysql數(shù)據(jù)庫(kù)的操作
這篇文章主要介紹了nodejs中關(guān)于mysql數(shù)據(jù)庫(kù)的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
如何使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序
NoSQL?數(shù)據(jù)庫(kù)對(duì)于處理大量分布式數(shù)據(jù)非常有用,我們可以在這個(gè)數(shù)據(jù)庫(kù)中存儲(chǔ)信息,對(duì)其進(jìn)行管理,這篇文章主要介紹了使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序,需要的朋友可以參考下2022-09-09

