1.Node.js和NPM安裝的問題
我已經安裝了Node.js以及npm,其中npm用於管理額外的模塊。
那麽如何將Node.js和我使用的那些模塊更新到最新版本呢?
可以直接使用npm完成操作嗎?或者我必須刪除並重新安裝Node.js和npm才能獲得下一個版本?
我是遵照這篇文章https://github.com/joyent/node/wiki/Installation(步驟3a)來操作的。
2.常用的解決方法: npm update
請參閱update
命令的文檔:
npm update [<name> [<name> ...]]
這個命令將更新列出的所有包到最新版本(由標簽配置指定),它還會自動安裝缺少的包。
另外,請參閱FAQ:
如何更新npm?
npm install -g npm
注意這個命令會刪除您當前的npm版本。如果在Mac係統上,請使用命令:sudo npm install -g npm
。
您還可以通過執行 npm update 而不使用任何參數,或者執行
npm update -g
來更新所有過時的程序包。
要更新Node.js本身,建議您使用nvm, Node版本管理器。
3.極簡主義者的解決思路
我發現在David Walsh的博客上,更新節點的方法非常簡單:可以通過安裝n
來實現:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
它將安裝當前穩定版本的node
。不過,這個稍顯tricky, 還是建議使用nvm
。
4.Windows上的解決方法
我明白這個問題是關於linux機器上的Node.js和NPM,但是實際上也有人正在尋找Windows上的解決方案。經過大量的網上搜索衝浪,都沒有找到一個直接的解決方案。直到我試著去了網站nodejs site,然後點擊主頁上的下載按鈕並執行安裝程序。
非常幸運的是,居然有效。通過點擊幾下’Next’按鈕,我得到了最新的0.8.15 node.js版本,並正常運行在我的Windows-7機器上。希望這個方法能幫到其他的Windows-7用戶!
5.幾種不同的解決思路
我們都知道,NPM目前與Node.js是捆綁在一起的,這意味著如果已經安裝了node
,那麽也安裝了npm
。通常有幾種方法都可以用於保持Node.js和NPM的最新狀態,我們需要使用以下版本管理器之一:
Homebrew
如果你使用Mac係統,可以使用Homebrew。使用brew安裝NodeJS和NPM:
$ brew install node
之後你可以使用更新命令:
$ brew update && brew upgrade node
NPM也將更新。
如果需要,可以使用命令switch
轉換到以前的版本,例如:
$ brew switch node 0.10.26
要安裝brew到您的Mac:
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
N
n跟rvm
(Ruby Version Manager:Ruby版本管理)非常相似,可用於管理和更新node/npm
版本。
輕鬆安裝Node.js版本:
$ n 0.10.26
$ n 0.8.17
$ n 0.9.6
使用/安裝最新的官方版本:
$ n latest
使用/安裝穩定正式版本:
$ n stable
切換到以前使用的版本:
$ n prev
如果要查看已安裝Node列表,隻需從命令行運行n
,輸出結果如下所示:
$ n
0.10.26
• 0.8.17
0.9.6
點(•)表示它是當前活動的版本。要從列表中選擇節點版本,使用up
和down
箭頭,並使用enter
激活。
n
這個程序包采用純linux shell
語言編寫,可作為npm模塊(包含package.json
)使用,所以一旦安裝了Node.js,就可以通過npm
來安裝/更新n
:
$ npm install -g n
NVM
nvm也跟RVM
一樣,命令名稱和用法非常近似。
要使用nvm
下載、編譯和安裝最新v0.10.x版本的Node.js:
$ nvm install 0.10
切換到已安裝的版本:
$ nvm use 0.10
也可以在項目根文件夾中創建一個包含版本號的.nvmrc
文件;然後運行以下命令切換到指定的版本:
$ nvm use
或者你可以運行這個命令:
$ nvm run 0.10
如果想查看已經安裝了哪些版本,請使用:
$ nvm ls
要安裝nvm
本身,可以使用cURL
來執行安裝腳本(需要git
):
$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
或wget
:
$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh
補充說明一下:
所有這些我在MacOSX和Linux上使用的方法,不一定適用於在Windows上管理Node.js版本。
5.其他方案一
使用如下命令,更新npm很容易:
npm install npm@latest -g
6.其他方案二
Windows用戶的升級
Windows用戶應在npm維基中閱讀Troubleshooting > Upgrading on Windows。
使用PowerShell的Windows 10係統的升級
上麵的鏈接 Troubleshooting#upgrading-on-windows指向一個github頁麵npm-windows-upgrade,下麵的解決方法引用了readme文件。我使用Node v5.7.0和powershell(PowerShell版本5.0.10586.122),成功從npm 2.7.4升級到了npm 3.9.3。
首先,確保您可以從PowerShell運行以下命令來在係統上執行腳本。要以管理員身份運行PowerShell,依次單擊開始、搜索PowerShell、右鍵單擊PowerShell,然後選擇以管理員身份運行。
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
然後,要安裝和使用這個升級工具,運行(也可以從PowerShell或cmd.exe):
npm install --global --production npm-windows-upgrade
npm-windows-upgrade
7.補充方案一
- 更新節點使用nvm(或nvmw為Windows)。
- 要更新npm,
npm update npm -g
命令對於使用windows的我無效。有效的方法,是根據文檔,重新安裝npm:“您可以從https://npmjs.org/dist/下載zip文件,並將其解壓縮到node.exe所在的同一個文件夾中。確保先清除以前的安裝(盡管覆蓋它可能會運行正常…但也可能有問題)。 - 要更新模塊,請使用npm update command
8.補充方案二
$ npm install -g npm stable
這個對我有效,我成功從1.4.28更新到了2.1.5。
9.補充方案三
我剛剛在新的Windows 7機器上安裝了Node.js,結果如下:
> node -v
v0.12.0
> npm -v
2.5.1
然後我執行了下麵的程序:
> npm install -g npm
並成功升級到v2.7.3。但是執行npm -v
還是顯示版本號2.5.1。
我依次打開了係統配置麵板=>高級設置=>環境變量,除了全局路徑變量之外,我看到了一個特定於我的用戶帳戶的PATH變量。這個特定PATH變量指向新的npm:C:\Users\PhiLho\AppData\Roaming\npm
,而全局路徑變量包括到Node的路徑:C:\PrgCmdLine\nodejs\
。
修複很簡單,將特定路徑複製到全局路徑中: <some stuff before>;C:\Users\PhiLho\AppData\Roaming\npm;C:\PrgCmdLine\nodejs\
。然後執行:
> npm -v
就能正常顯示最新的版本號了:2.7.3。