學(xué)習(xí)筆記,非原創(chuàng)。謝謝
Node版本管理器--nvm,可以運(yùn)行在多種操作系統(tǒng)上。nvm for windows 是使用go語(yǔ)言編寫的軟件。 我電腦使用的是Windows操作系統(tǒng),所以我要記錄下在此操作系統(tǒng)上nvm的安裝和使用。
nvm-windows 最新下載地址:
https://github.com/coreybutler/nvm-windows/releases
如圖所示:

我目前看到有兩個(gè)版本【Pre-release 1.1.6】和 【Latest release 1.1.5],我們下載目前穩(wěn)定版本1.1.5就可以了。1.1.6版本是最新版本,可能還不是很穩(wěn)定。
而這里又有四個(gè)可下載的文件。
nvm-noinstall.zip: 這個(gè)是綠色免安裝版本,但是使用之前需要配置
nvm-setup.zip:這是一個(gè)安裝包,下載之后點(diǎn)擊安裝,無(wú)需配置就可以使用,方便。
Source code(zip):zip壓縮的源碼
Sourc code(tar.gz):tar.gz的源碼,一般用于*nix系統(tǒng)
我對(duì)這個(gè)目前只是簡(jiǎn)單使用,為了方便,所以下載了nvm-set.zip文件。
安裝和升級(jí)
安裝之前的操作
請(qǐng)注意: 在安裝nvm for windows之前,你需要卸載任何現(xiàn)有版本的node.js。并且需要?jiǎng)h除現(xiàn)有的nodejs安裝目錄(例如:"C:\Program Files\nodejs’)。因?yàn)?,nvm生成的symlink(符號(hào)鏈接/超鏈接)不會(huì)覆蓋現(xiàn)有的(甚至是空的)安裝目錄。
你還需要?jiǎng)h除現(xiàn)有的npm安裝位置(例如“C:\Users\weiqinl\AppData\Roaming\npm”),以便正確使用nvm安裝位置。
安裝
以上操作完成之后,雙擊執(zhí)行下載的setup文件,

Next之后,選擇同意協(xié)議,之后選擇nvm的本地安裝目錄,這里注意,nvm的安裝路徑名稱中最好不要有空格。

例如最好不要這樣有空格的~\Program Files\nvm,我這里選擇的是D:\softtool\nvm。
點(diǎn)擊Next,跳轉(zhuǎn)到設(shè)置 Node.js的Symlink,即需要設(shè)置nodejs的快捷方式存放的目錄。

之后,點(diǎn)擊Next-->Install-->Finish完成本次安裝。
注:
無(wú)論將? Node.js的存放目錄放在什么地方,路徑后面都要添加 \nodejs
檢測(cè)
檢查是否安裝成功,我們可以在新的命令窗口中輸入
nvm
如果出現(xiàn)nvm版本號(hào)和一系列幫助指令,則說(shuō)明nvm安裝成功。
否則,可能會(huì)提示
nvm: command not found

升級(jí)
如果要升級(jí)的話,請(qǐng)重新下載最新的安裝程序。并直接運(yùn)行安裝程序。它將安全的覆蓋需要更新的文件,而無(wú)需關(guān)心nodejs的安裝。
此次安裝需要確保和上次使用相同的安裝目錄。
如果你最初安裝到默認(rèn)位置,則只需一直點(diǎn)擊"下一步",直到完成。
使用
nvm for windows是一個(gè)命令行工具,在控制臺(tái)輸入nvm,就可以看到它的命令用法。
設(shè)置淘寶鏡像
設(shè)置 node 鏡像
nvm node_mirror?https://npm.taobao.org/mirrors/node/
設(shè)置 npm 鏡像
nvm npm_mirror?https://npm.taobao.org/mirrors/npm/
鏡像設(shè)置成功:

鏡像設(shè)置成功????nvm文件內(nèi)的settings.txt文件會(huì)成為:

一個(gè)nodejs的安裝使用流程:
建議先設(shè)置淘寶鏡像,因?yàn)槿菀壮霈F(xiàn) node 和 npm 下載失敗
nvm ls????// 查看目前已經(jīng)安裝的版本
nvm install latest 64? ? //安裝最新版64位的nodejs
nvm install 6.10.0????// 安裝指定的版本的nodejs
nvm use 6.10.0????// 使用指定版本的nodejs?
npm -v? ? //查看當(dāng)前 npm 版本
node -v? ? //查看當(dāng)前 node.js 版本
安裝全局npm
安裝node的時(shí)候,npm其實(shí)也已經(jīng)一起安裝了。因?yàn)閚vm可以管理多個(gè)版本的node,如果每次添加一個(gè)node版本都要安裝一堆的包很麻煩,如果有一個(gè)npm可以讓各個(gè)版本的node共用,就不會(huì)這么麻煩了,這就是為什么我們要配置一個(gè)全局的npm的原因。
1. npm config set prefix "E:nvm路徑\npm"????//配置用npm下載包時(shí)全局安裝的包路徑?
2. npm install npm -g --registry=https://registry.npm.taobao.org?
//安裝全局npm,不同的node都使用這個(gè)npm,想更新全局的npm的話首先刪除全局路徑(就是上一行命令的地址,可以使用npm config ls查看)下的npm,再執(zhí)行一次這個(gè)命令即可?
3. 在用戶變量中添加 NPM_HOME=E:\dev\nvm\npm,path中添加%NPM_HOME%?
一些替代npm的方式
npm install -g cnpm --registry=https://registry.npm.taobao.org???? //使用淘寶鏡像cnpm替代npm?
npm install -g yarn????//使用yarn替代npm
基本命令有:
nvm arch [32|64]?:? ? 顯示node是運(yùn)行在32位還是64位模式。指定32或64來(lái)覆蓋默認(rèn)體系結(jié)構(gòu)。
nvm install <版本> [arch]:? ?該可以是node.js版本或最新穩(wěn)定版本latest。(可選[arch])指定安裝32位或64位版本(默認(rèn)為系統(tǒng)arch)。設(shè)置[arch]為all以安裝32和64位版本。在命令后面添加--insecure?,可以繞過(guò)遠(yuǎn)端下載服務(wù)器的SSL驗(yàn)證。
nvm list [available]: 列出已經(jīng)安裝的node.js版本。可選的available,顯示可下載版本的部分列表。這個(gè)命令可以簡(jiǎn)寫為nvm ls [available]。
nvm on: 啟用node.js版本管理。
nvm off: 禁用node.js版本管理(不卸載任何東西)
nvm proxy [url]: 設(shè)置用于下載的代理。留[url]空白,以查看當(dāng)前的代理。設(shè)置[url]為none刪除代理。
nvm node_mirror [url]:設(shè)置node鏡像,默認(rèn)為https://nodejs.org/dist/.。我建議設(shè)置為淘寶的鏡像https://npm.taobao.org/mirrors/node/
nvm npm_mirror [url]:設(shè)置npm鏡像,默認(rèn)為https://github.com/npm/npm/archive/。我建議設(shè)置為淘寶的鏡像https://npm.taobao.org/mirrors/npm/
nvm uninstall <version>: 卸載指定版本的nodejs。
nvm use [version] [arch]: 切換到使用指定的nodejs版本??梢灾付?2/64位[arch]。nvm use <arch>將繼續(xù)使用所選版本,但根據(jù)提供的值切換到32/64位模式的<arch>
nvm root [path]: 設(shè)置 nvm 存儲(chǔ)node.js不同版本的目錄 ,如果未設(shè)置,將使用當(dāng)前目錄。
nvm version: 顯示當(dāng)前運(yùn)行的nvm版本,可以簡(jiǎn)寫為nvm v
其他命令
直接運(yùn)行特定版本的 Node
nvm run 4.2.2 --version
在當(dāng)前終端的子進(jìn)程中運(yùn)行特定版本的 Node
nvm exec 4.2.2 node --version
確認(rèn)某個(gè)版本Node的路徑
nvm which 4.2.2
安裝 Node 的其他實(shí)現(xiàn),例如 iojs(一個(gè)基于 ES6 的 Node 實(shí)現(xiàn),現(xiàn)在已經(jīng)和 Node 合并)
nvm install iojs-v3.2.0
快捷命令:
nvm install node?安裝最新版 Node
nvm install iojs?安裝最新版 iojs
nvm install unstable?安裝最新不穩(wěn)定版本的 Node?