最近与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