终端中node vs nodejs命令有什么区别?

时间:2014-03-17 15:04:25

标签: javascript node.js terminal installation

我从nodejs.org上给出的tar文件中解压缩了node.js,但是当我尝试通过node命令执行我的js程序时没有任何反应,但另一方面nodejs命令运行执行该文件。

所以我的问题是节点命令和nodejs命令之间的区别是什么?它会影响我的程序,因为我没有从源代码构建。 而这就是造成这种差异的原因。

3 个答案:

答案 0 :(得分:18)

这在很大程度上取决于许多因素。主要取决于shell中nodenodejs的实际内容。您可以使用type node / type nodejs和/或which node / which nodejs(或者whereis)进行检查。此取决于操作系统和shell。

我的猜测是which -a node会产生/usr/sbin/node nodejs可执行文件,因此它不会执行您的节点代码。在我的系统上,它是:

/usr/bin/node -> /etc/alternatives/node -> /usr/bin/nodejs

即。 node只是nodejs的符号链接,它是可执行文件。

您也可以自己创建此别名,以便覆盖node为您提供的任何内容。

答案 1 :(得分:10)

其中一些答案对我来说很难理解,所以我会写出能够帮助我的答案。

node类似于无线电遥测解决方案,他们恰好首先抓住了node这个名字。 nodejs就是你所追求的。所以 请确保你:

apt-get install nodejs

然后,要修复蹩脚的命名问题,请创建一个符号链接。 nodenodejs之间的符号链接。

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

第一部分是原始文件放置,然后是它应链接到的位置。 您还可以在bash配置文件中创建别名,这也非常简单。

答案 2 :(得分:2)

确定可用的节点' package与nodejs无关。

从这里看一下这个节点:

https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

  

与节点包(业余数据包无线电节点程序)存在命名冲突,并且nodejs二进制文件已从节点重命名为nodejs。您需要将/ usr / bin / node符号链接到/ usr / bin / nodejs,或者您可以卸载业余数据包无线电节点程序以避免这种冲突。

所以看起来你可以用

清除那个广播节目
dpkg --purge node

然后通过常见的方式之一安装nodejs。来自预编译的deb软件包,如下所示:

sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

但是nodejs的更新速度比包更快,所以在你获得任何nodejs版本后,使用这个模块来管理nodejs版本效率更高 - https://github.com/visionmedia/n

至少经过一些测试后,这个解决方案看起来最适合我在mac os。