簡單談?wù)刵ode.js 版本控制 nvm和 n
今天的話題包括2個部分
1. node.js 下使用 nvm 或者 n 來進(jìn)行版本控制
2. nvm 安裝node.js 版本后,重啟終端 node , npm 環(huán)境變量失效
第一部分 用什么來管理 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ā)布,我們很有必要用一個 node.js 的版本管理工具來控制當(dāng)前系統(tǒng)的 node.js 版本.
為什么這樣做?
在新的版本中已經(jīng)用上了最新的V8引擎,ES 6的所有新特性一展身手,你能忍得住嗎?
但是,如果你魯莽升級,第一個問題是 你的開發(fā)環(huán)境和線上發(fā)布環(huán)境可能不一樣,那么后果就不用多少了,出了問題 等著老板來鞭尸吧.
第二個問題 可能是之前的一些開源包需要重新編譯,尤其是 c++ 模塊寫的.
所以,你需要一個 node.js 的版本管理軟件
現(xiàn)在流行的 node.js 版本管理有哪些?
nvm
我們使用 brew 安裝 nvm
brew install nvm
這里要注意
brew 安裝后一定要在你的 bash 或者 zsh 配置文件中設(shè)置一下,否則 當(dāng)你重新啟動終端,你會發(fā)現(xiàn) node ,npm 環(huán)境變量都失效了
這里要穿插說一下我們要分享的第二個話題
nvm 重啟后終端 node ,npm 失效的解決方案
如果你使用了上面的 brew 的安裝方法
當(dāng)安裝成功后,請按照如下操作設(shè)置你的 shell 配置文件
brew info nvm
你會看到下面的輸出幫助信息
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
我們需要按照上面提供的方法,首先在用戶更目錄下 創(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 配置及時生效
source ~/.bashrc
或
`source ~/.zshrc'
最后你就不會再出現(xiàn)關(guān)閉終端重啟,或者重啟機(jī)器發(fā)現(xiàn) node ,npm 等系統(tǒng)環(huán)境變量失效的問題了.
nvm 和 n 的區(qū)別
nvm 類似于 Python 的 virtualenv 或者 Ruby 的 rvm ,它是一個獨(dú)立安裝的軟件
n 其實(shí)是一個 npm 全局的開源包 ,需要使用 npm 來全局安裝
n 更加輕巧,但是 nvm 更加獨(dú)立.
假如你有一臺新帶電腦,如果你想使用 版本管理,那么 nvm 是你的選擇,因?yàn)樗莫?dú)立的軟件,安裝后你可以隨意下載切換你需要的版本.
但是 n 是依賴在 npm 下的一個包,也就是說 你的電腦環(huán)境還沒有 node / npm 的時候,你還用不了 n .
所以在使用的時候,大家可以針對自己的情況權(quán)衡.我本人使用 nvm 來控制 node 版本.
nvm 使用
查看可以安裝的版本
nvm ls-remote
查看已經(jīng)安裝的版本
nvm ls
安裝一個指定的版本
nvm install <version>
上面的 version 可以指定你在 nvm ls-remote 里面列出來的版本號即可
刪除指定版本
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 后面更一個標(biāo)識 stable 標(biāo)識最新穩(wěn)定版, laster 標(biāo)識最新版 ,<version> 就是你可以具體指定一個版本號
n 使用一個版本 n use <version> n 刪除一個版本 n rm <version>
相關(guān)文章
node 使用multer中間件上傳報錯Unexpected end of fo
再前幾天還是可以正常上傳,但今天運(yùn)行出現(xiàn)該報錯,下面通過場景分析給大家介紹node使用multer中間件上傳,報錯Unexpected end of form的解決方案,感興趣的朋友一起看看吧2025-03-03
利用node.js如何搭建一個簡易的即時響應(yīng)服務(wù)器
這篇文章主要介紹了利用node.js如何搭建一個簡易的即時響應(yīng)服務(wù)器的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-05-05
nodejs中關(guān)于mysql數(shù)據(jù)庫的操作
這篇文章主要介紹了nodejs中關(guān)于mysql數(shù)據(jù)庫的操作方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
如何使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序
NoSQL?數(shù)據(jù)庫對于處理大量分布式數(shù)據(jù)非常有用,我們可以在這個數(shù)據(jù)庫中存儲信息,對其進(jìn)行管理,這篇文章主要介紹了使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序,需要的朋友可以參考下2022-09-09

