在terminal节点与nodejs命令有什么区别?

我从nodejs.org上给出的tar文件解压了node.js,但是当我尝试通过节点命令执行我的js程序时,什么也没有发生,但是另一方面,nodejs命令运行执行文件。

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

这很大程度上取决于许多因素。 主要取决于你的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一个符号链接,这是可执行文件。

你也可以自己创build这个别名,以便覆盖任何node

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

node就像一个无线电遥测解决scheme,他们恰好碰巧抢先了名字nodenodejs就是你所追求的。 所以请确保你:

 apt-get install nodejs 

然后,为了解决这个蹩脚的命名问题,创build一个符号链接。 nodenodejs之间的符号链接。

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

第一部分是原始文件的位置,然后是它应该链接到的位置。 你也可以在你的bashconfiguration文件中创build一个别名,这也很简单。

确定可用的“节点”包与nodejs无关。

从这里看看这个节点:

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

与节点包(业余分组无线节点程序)有一个命名冲突,并且节点js二进制已经从节点重命名为nodejs。 您需要将/ usr / bin / node符号链接到/ usr / bin / nodejs,否则您可以卸载业余无线分组无线节点程序以避免冲突。

所以你似乎可以清除无线电节目

 dpkg --purge node 

然后通过预编译的deb软件包中的常用方法之一来安装nodejs,如下所示:

 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版本之后,使用这个模块来pipe理nodejs版本会更有效率 – https://github.com/visionmedia/n

至less经过一些testing,这个解决scheme在mac os上看起来最适合我。