Nodejs,Npm,节点。 包差价?

最近与NodeJS等工作。 我安装了相当不同的包,用于不同的教程+项目。 我终于结束了这种configuration:

louis@louis:~$ node -v v5.10.0 louis@louis:~$ nodejs -v v6.2.1 louis@louis:~$ npm -v 3.8.3 

你能解释一下这两者之间的区别吗?

你的情况

似乎你已经安装了两个不同版本的nodejs ,可能有一个是从源nodejs安装的,另外一个是像apt这样的软件包pipe理器。


 louis@louis:~$ node -v v5.10.0 

这将返回您安装的较旧版本的nodejs,我build议您将其删除。


 louis@louis:~$ nodejs -v v6.2.1 

这将返回当前版本的nodejs安装,可能你使用包pipe理器来安装它,我记得在Ubuntu它是由nodejs可执行文件名来的。

我build议你创build这样的链接

 sudo ln -s `which nodejs` /usr/bin/node 

所以它也可以使用node命令。

在Ubuntu 12.04上的nodejs vs node


 louis@louis:~$ npm -v 3.8.3 

这只是你的npm程序的版本,与nodejs版本无关。

解决scheme更好

卸载你所有的版本,并使用nvm来安装node轻松地在新旧版本之间切换

要安装或更新nvm,可以使用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 

然后在任何新的shell中使用安装的版本:

 nvm use 5.0 

https://github.com/creationix/nvm#install-script

我假设你使用的是Ubuntu。 nodenodejs是相同的工具,但node是旧版本和nodejs当前的开发分支。

然而npmnode(js)的包pipe理器。

这里有一些有用的信息可以添加到讨论中,并且有希望帮助您解决节点版本冲突问题。

在你的.bash_profile(或者叫做.bashrc或者.bashconfig)文件中添加NodeJs版本到你的$ PATH将确保来自terminal的节点调用将使用最新版本而不是旧版本。

使用NVM (节点版本pipe理器)将允许您使用“nvm use 6.0.0”dynamic安装和更改节点版本,并强烈推荐使用,因为如果使用不正确的节点和npm版本,某些NPM软件包将中断在您的node_modules目录中的某些npm软件包。 在这种情况下,您还必须将NVM添加到$ PATH中,但是很容易处理:

 export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm 

更多细节可以在提供的链接中find。

OP的问题得到了回答,我知道,但我认为将OP指向更好的解决scheme也是一个好主意。