簡(jiǎn)單談?wù)刵ode.js 版本控制 nvm和 n
今天的話題包括2個(gè)部分
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ā)布,我們很有必要用一個(gè) node.js 的版本管理工具來控制當(dāng)前系統(tǒng)的 node.js 版本.
為什么這樣做?
在新的版本中已經(jīng)用上了最新的V8引擎,ES 6的所有新特性一展身手,你能忍得住嗎?
但是,如果你魯莽升級(jí),第一個(gè)問題是 你的開發(fā)環(huán)境和線上發(fā)布環(huán)境可能不一樣,那么后果就不用多少了,出了問題 等著老板來鞭尸吧.
第二個(gè)問題 可能是之前的一些開源包需要重新編譯,尤其是 c++ 模塊寫的.
所以,你需要一個(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)境變量都失效了
這里要穿插說一下我們要分享的第二個(gè)話題
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
我們需要按照上面提供的方法,首先在用戶更目錄下 創(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)境變量失效的問題了.
nvm 和 n 的區(qū)別
nvm 類似于 Python 的 virtualenv 或者 Ruby 的 rvm ,它是一個(gè)獨(dú)立安裝的軟件
n 其實(shí)是一個(gè) npm 全局的開源包 ,需要使用 npm 來全局安裝
n 更加輕巧,但是 nvm 更加獨(dú)立.
假如你有一臺(tái)新帶電腦,如果你想使用 版本管理,那么 nvm 是你的選擇,因?yàn)樗莫?dú)立的軟件,安裝后你可以隨意下載切換你需要的版本.
但是 n 是依賴在 npm 下的一個(gè)包,也就是說 你的電腦環(huán)境還沒有 node / npm 的時(shí)候,你還用不了 n .
所以在使用的時(shí)候,大家可以針對(duì)自己的情況權(quán)衡.我本人使用 nvm 來控制 node 版本.
nvm 使用
查看可以安裝的版本
nvm ls-remote
查看已經(jīng)安裝的版本
nvm ls
安裝一個(gè)指定的版本
nvm install <version>
上面的 version 可以指定你在 nvm ls-remote 里面列出來的版本號(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.js 實(shí)現(xiàn)簡(jiǎn)單小說爬蟲實(shí)例
現(xiàn)在爬蟲在很多web項(xiàng)目中都有應(yīng)用,這篇文章主要介紹了Node.js 實(shí)現(xiàn)簡(jiǎn)單小說爬蟲實(shí)例,有興趣的可以了解一下。2016-11-11Node.JS中快速掃描端口并發(fā)現(xiàn)局域網(wǎng)內(nèi)的Web服務(wù)器地址(80)
在 Node.JS 中進(jìn)行端口掃描還是比較方便的,一般會(huì)有廣播和輪詢兩種方式。下文重點(diǎn)給大家介紹node.js 掃描端口并發(fā)現(xiàn)局域網(wǎng)內(nèi)的web服務(wù)器地址的方法,一起看看吧2017-09-09Node.js學(xué)習(xí)之查詢字符串解析querystring詳解
這篇文章主要給大家介紹了關(guān)于Node.js查詢字符串解析querystring的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-09-09nodejs一個(gè)簡(jiǎn)單的文件服務(wù)器的創(chuàng)建方法
這篇文章主要介紹了nodejs一個(gè)簡(jiǎn)單的文件服務(wù)器的創(chuàng)建方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09詳解基于 Node.js 的輕量級(jí)云函數(shù)功能實(shí)現(xiàn)
這篇文章主要介紹了詳解基于 Node.js 的輕量級(jí)云函數(shù)功能實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Node.js中npx命令的使用方法及場(chǎng)景分析
NPM(Node Package Manager) 是Node.js提供的一個(gè)包管理器, 可以使用 NPM 來安裝 node.js 包 ,npm 是從5.2版開始, 增加(自帶)了 npx 命令,本文給大家分享Node.js npx命令使用,需要的朋友一起看看吧2021-08-08node.js+postman實(shí)現(xiàn)模擬HTTP服務(wù)器與客戶端交互
本文主要介紹了node.js+postman實(shí)現(xiàn)模擬HTTP服務(wù)器與客戶端交互,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07