最近與NodeJS等工作。我爲不同的教程+項目安裝了相當不同的軟件包。 我終於結束了這種配置:Nodejs,Npm節點。包裝差異?
[email protected]:~$ node -v
v5.10.0
[email protected]:~$ nodejs -v
v6.2.1
[email protected]:~$ npm -v
3.8.3
你能解釋它們之間的區別?
最近與NodeJS等工作。我爲不同的教程+項目安裝了相當不同的軟件包。 我終於結束了這種配置:Nodejs,Npm節點。包裝差異?
[email protected]:~$ node -v
v5.10.0
[email protected]:~$ nodejs -v
v6.2.1
[email protected]:~$ npm -v
3.8.3
你能解釋它們之間的區別?
看來你可能一個是從源代碼安裝的安裝nodejs
兩個不同的版本,一個來自包管理器一樣apt
。
[email protected]:~$ node -v
v5.10.0
這將返回您安裝的的NodeJS舊版本,我建議你將其刪除。
[email protected]:~$ nodejs -v
v6.2.1
這將返回安裝current version of nodejs
,可能你使用安裝包管理器,我記得在Ubuntu
它獲得nodejs
可執行文件名。
我建議你創建一個這樣
sudo ln -s `which nodejs` /usr/bin/node
鏈接,它會使用node
命令也可用。
nodejs vs node on ubuntu 12.04
[email protected]:~$ npm -v
3.8.3
這只是版本的npm
方案,並沒有任何與nodejs
版本。
卸載已使用nvm
容易
新/舊版本之間切換,在安裝或更新NVM安裝
node
所有版本,您可以使用cURL使用安裝腳本:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
或Wget的:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
使用
下載,編譯和安裝節點的最新v5.0.x版本, 做到這一點:
nvm install 5.0
然後在任何新的外殼只需使用已安裝的版本:
nvm use 5.0
感謝您的詳細答案和解釋。 NVM是一個非常好的工具!它滿足我的需求! 只需添加/更正兩件小事: - 最新版本的NodeJS是v6.0.0(=> nvm install 6.0) - NVM安裝'node'軟件包而不是'nodejs'。 node -v => v6.0.0 nodejs -v => nodejs當前未安裝。 但問題已解決!感謝大家提供的快速信息。 –
我假設你正在使用Ubuntu。 node
和nodejs
是相同的工具,但node
是舊版本,並nodejs
當前開發分支。然而
npm
是node(js)
包管理器。
我還建議通過nvm(https://github.com/creationix/nvm)安裝節點,以便爲每個項目設置一個獨立的和獨立的開發工作區,並且還可以靈活地創建多個不與彼此。 –
我用'nvm'而不是'npm'。 最新的Node版本(v6.0.0)在NPM上尚不可用,但在NVM上。 我現在沒有更多的nodejs,只有節點包。 從你的角度來看,這是解決問題的正確方法嗎? –
這裏有一點有用的信息添加到討論,並希望這將幫助你有關節點版本衝突。
將NodeJs版本添加到您的.bash_profile(或稱爲.bashrc或.bashconfig)文件中的$ PATH將確保您的終端節點調用將使用最新版本而不是舊版本。
使用NVM(節點版本管理器)將允許您使用'nvm use 6.0.0'即時安裝和更改節點版本,並且強烈建議使用節點和npm版本,因此一些NPM軟件包將中斷對你的node_modules目錄中的某些npm軟件包無效。 您也將有NVM在這種情況下添加到您的$ PATH,但它很容易做到:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
更多細節可以在提供的鏈接中找到。
OP的問題得到了回答,我知道,但我認爲將OP指向更好的解決方案也是一個好主意。
感謝您的額外信息。但是這裏有一些關於你所說的問題。 我不需要手動將NVM添加到我的$ PATH中。我猜這是默認的。 爲什麼我需要添加NodeJS包?節點包似乎是唯一有用的嗎?如果我使用'node'包而不是'nodejs',可能會有什麼問題。順便說一下,nvm使用和更新'節點'包。不是nodejs。 (Ubuntu 12.04) –
當您輸入:'nvm install 6.0'時。 它安裝'節點'包。不是nodejs。 :/ louis @ louis:〜/ work/sd-components $ nvm install 6.0 正在下載https://nodejs.org/dist/v6.0.0/node-v6.0.0-linux-x64.tar.xz .. 。 ################################################ ######################## 100.0% 現在使用節點v6.0.0(npm v3.8.6) louis @ louis:〜/ work/sd-組件$ node -v v6.0.0 –
據我所知,Debian/Ubuntu發行版安裝了Node,但它完全是其他功能。在安裝NodeJ時,它與在終端中運行'node'時默認版本的安裝版本衝突。 我指的是Node作爲Nodejs來闡明我給你更多的信息。 將新安裝的NodeJ添加到您的路徑中將確保在終端中調用節點時調用該版本。您可以這樣做,或者您可以按照我推薦的那個NVM鏈接中的說明進行操作。 –
你在什麼操作系統上?一些Ubuntu軟件包可能會將Node.js安裝爲'nodejs'而不是'node'。實際上,您似乎安裝了兩個不同版本的Node.js。 –
雖然不是一個壞問題,但這看起來像一個不屬於SO的問題。 – Randy
@randy認爲相同,但不知道在哪裏分配一個國旗。由於它是一個編程工具,它不適合超級用戶,它不足以滿足服務器故障等。 – Toxantron