今天的話題包括2個部分
1. node.js 下使用 nvm 或者 n 來進行版本控制
2. nvm 安裝node.js 版本后,重啟終端 node , npm 環境變量失效
第一部分 用什么來管理 node.js 版本
首先應該歡呼慶祝一下 node.js 終于發布了有歷史意義的正式版 1.0 ,雖然我們看到的是V4.0,其實他就是node.js 真正意義的 1.0, io.js 不負眾望,完成了它的使命.
回頭看這幾年node.js 以及 io.js 的發展速度,各種版本的迭代發布,我們很有必要用一個 node.js 的版本管理工具來控制當前系統的 node.js 版本.
為什么這樣做?
在新的版本中已經用上了最新的V8引擎,ES 6的所有新特性一展身手,你能忍得住嗎?
但是,如果你魯莽升級,第一個問題是 你的開發環境和線上發布環境可能不一樣,那么后果就不用多少了,出了問題 等著老板來鞭尸吧.
第二個問題 可能是之前的一些開源包需要重新編譯,尤其是 c++ 模塊寫的.
所以,你需要一個 node.js 的版本管理軟件
現在流行的 node.js 版本管理有哪些?
nvm
我們使用 brew 安裝 nvm
brew install nvm
這里要注意
brew 安裝后一定要在你的 bash 或者 zsh 配置文件中設置一下,否則 當你重新啟動終端,你會發現 node ,npm 環境變量都失效了
這里要穿插說一下我們要分享的第二個話題
nvm 重啟后終端 node ,npm 失效的解決方案
如果你使用了上面的 brew 的安裝方法
當安裝成功后,請按照如下操作設置你的 shell 配置文件
brew info nvm
你會看到下面的輸出幫助信息
nvm: stable 0.26.1 (bottled), HEADManage multiple Node.js versionshttps://github.com/creationix/nvm/usr/local/Cellar/nvm/0.26.1 (3173 files, 56M) * Poured from bottleFrom: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nvm.rb==> CaveatsAdd NVM's working directory to your $HOME path (if it doesn't exist): mkdir ~/.nvmCopy 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'sequivalent configuration file: export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.shType `nvm help` for further information.Bash completion has been installed to: /usr/local/etc/bash_completion.d
我們需要按照上面提供的方法,首先在用戶更目錄下 創建 .nvm 文件
mkdir ~/.nvm
然后把 nvm-exec 文件拷貝到你剛才新建的 .nvm 目錄下
cp $(brew --prefix nvm)/nvm-exec ~/.nvm/
然后去編輯你的 bash 配置文件 $HOME/.bashrc ,如果你 使用 zsh 那么編輯 $HOME/.zshrc 配置文件
nano ~/.bashrc
或
nano ~/.zshrc
把下面的內容粘貼進去
export NVM_DIR=~/.nvmsource $(brew --prefix nvm)/nvm.sh
最后讓你的 shell 配置及時生效
source ~/.bashrc
或
`source ~/.zshrc'
最后你就不會再出現關閉終端重啟,或者重啟機器發現 node ,npm 等系統環境變量失效的問題了.
nvm 和 n 的區別
nvm 類似于 Python 的 virtualenv 或者 Ruby 的 rvm ,它是一個獨立安裝的軟件
n 其實是一個 npm 全局的開源包 ,需要使用 npm 來全局安裝
n 更加輕巧,但是 nvm 更加獨立.
假如你有一臺新帶電腦,如果你想使用 版本管理,那么 nvm 是你的選擇,因為它的獨立的軟件,安裝后你可以隨意下載切換你需要的版本.
但是 n 是依賴在 npm 下的一個包,也就是說 你的電腦環境還沒有 node / npm 的時候,你還用不了 n .
所以在使用的時候,大家可以針對自己的情況權衡.我本人使用 nvm 來控制 node 版本.
nvm 使用
查看可以安裝的版本
nvm ls-remote
查看已經安裝的版本
nvm ls
安裝一個指定的版本
nvm install <version>
上面的 version 可以指定你在 nvm ls-remote 里面列出來的版本號即可
刪除指定版本
nvm use <version>
n 的安裝
npm install -g n
當然,你還可以去 github 下載你的源代碼自己本地編譯
$ git clone https://github.com/visionmedia/n.git$ cd n$ [sudo] make installn 安裝指定版本n stable/laster/< version>
在 n 后面更一個標識 stable 標識最新穩定版, laster 標識最新版 ,<version> 就是你可以具體指定一個版本號
n 使用一個版本n use <version>n 刪除一個版本n rm <version>
新聞熱點
疑難解答