Why is there a ‘js’ command on Node JS for Linux?
I have installed the software Node.js: on XUbuntu 13.10 via the package manager
xxx@xxx:/$ sudo apt-get install nodejs
Everything seems fine, but I found a js
executable besides the nodejs
executable.
Both, if called with the -v
option, shows v0.10.15
and I’ve successfully used them both as Javascript interpreters.
My question is: is there any difference between nodejs
commands and js
commands? Is js
just an alias for the nodejs
command?
Solution
It is related to /etc/alternatives
, the Ubuntu/Debian alternative mechanism.
- /
usr/bin/js
— is the link to which it pointsetc/alternatives/js
— is the link to it/usr/bin/node
/
So if you have /usr/bin
in your PATH
, running js
is actually exactly the same
as running node (except you have to traverse two symbolic links, which is not a big cost). Using js
in a script (for example) will allow the system to be configured to use an alternative version of the installed version of Node – perhaps a different version, or a version built with some experimental features.
You can update in >update-alternatives man page to read more about this