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
我假设你使用的是Ubuntu。 node
和nodejs
是相同的工具,但node
是旧版本和nodejs
当前的开发分支。
然而npm
是node(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也是一个好主意。