browserify error /usr/bin/env: node: No such file or directory

Javascriptnode.jsBrowserify

Javascript Problem Overview


I installed node js and npm via apt-get install and all of the dependencies, then I installed browserify

npm install browserify -g

it goes through the process and it seems like it installed correctly, but when I try to do a simple bundle per this walkthrough

I get the error:

/usr/bin/env: node: No such file or directory

enter image description here

Javascript Solutions


Solution 1 - Javascript

Some linux distributions install nodejs not as "node" executable but as "nodejs".

In this case you have to manually link to "node" as many packages are programmed after the "node" binary. Something similar also occurs with "python2" not linked to "python".

In this case you can do an easy symlink. For linux distributions which install package binaries to /usr/bin you can do

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

Solution 2 - Javascript

New Answer:

  1. Uninstall any nodejs package you've installed via your system package manager (dnf, apt-get, etc), delete any silly symlinks you've been recreating every upgrade (lol).
  2. Install NVM,
  3. use nvm to install nodejs: nvm install 6

Old Answer:

Any talk of creating symlinks or installing some other node-package are spurious and not sustainable.

The correct way to solve this is to :

  1. simple install the nodejs package with apt-get like you already have
  2. use update-alternatives to indicate your nodejs binary is responsible for #!/usr/bin/env node

Like so :

sudo apt-get install nodejs
sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100

This now becomes sustainable throughout package upgrades, dist-upgrades and so forth.

Solution 3 - Javascript

Run apt-get install nodejs-legacy.

Certain linux distributions have changed node.js binary name making it uncompatible with a lot of node.js packages. Package nodejs-legacy provides a symlink to resolve this.

Solution 4 - Javascript

You can also install Nodejs using NVM or Nodejs Version Manager. There are a lot of benefits to using a version manager. One of them being you don't have to worry about this issue.


Instructions:


sudo apt-get update
sudo apt-get install build-essential libssl-dev

Once the prerequisite packages are installed, you can pull down the nvm installation script from the project's GitHub page. The version number may be different, but in general, you can download and install it with the following syntax:

curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh

This will download the script and run it. It will install the software into a subdirectory of your home directory at ~/.nvm. It will also add the necessary lines to your ~/.profile file to use the file.

To gain access to the nvm functionality, you'll need to log out and log back in again, or you can source the ~/.profile file so that your current session knows about the changes:

source ~/.profile

Now that you have nvm installed, you can install isolated Node.js versions.

To find out the versions of Node.js that are available for installation, you can type:

nvm ls-remote
. . .

v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14

As you can see, the newest version at the time of this writing is v0.11.14. You can install that by typing:

nvm install 0.11.14

Usually, nvm will switch to use the most recently installed version. You can explicitly tell nvm to use the version we just downloaded by typing:

nvm use 0.11.14

When you install Node.js using nvm, the executable is called node. You can see the version currently being used by the shell by typing:

node -v

The comeplete tutorial can be found here

Solution 5 - Javascript

sudo apt-get install nodejs-legacy

This creates the symlink /usr/bin/node -> nodejs.

Source: https://lists.debian.org/debian-devel-announce/2012/07/msg00002.html

Solution 6 - Javascript

I seem the same problem when I build atom in Linux.

sudo apt-get install nodejs-dev

Fix my question.hope helpful to you.

Solution 7 - Javascript

If you don't want to symlink you could do this. works in ubuntu

#!/usr/local/bin/node --harmony

harmony tag is for the new ECMAscript harmony

Solution 8 - Javascript

  1. run the command which node the result will be something

    /home/moh/.nvm/versions/node/v8.9.4/bin/node

  2. Copy the path that you have got above then run the command in step 3.

  3. ln -s /home/moh/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node

Solution 9 - Javascript

You have to call "nodejs" and not "node". To verify this, type node -v on the shell: if nothing is found try nodejs -v. If that displays a version number, then the command you should be using is nodejs and not node. Therefore, you have to change the call to browserify in your script from node to nodejs (as shown below): replace

#!/usr/bin/env node

with

#!/usr/bin/env nodejs

You might also have to open the script as the superuser.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEduardo DennisView Question on Stackoverflow
Solution 1 - JavascriptbodokaiserView Answer on Stackoverflow
Solution 2 - JavascriptairtonixView Answer on Stackoverflow
Solution 3 - JavascriptalexView Answer on Stackoverflow
Solution 4 - JavascriptEduardo DennisView Answer on Stackoverflow
Solution 5 - JavascriptkamikaterView Answer on Stackoverflow
Solution 6 - JavascriptkangearView Answer on Stackoverflow
Solution 7 - Javascriptuser2290820View Answer on Stackoverflow
Solution 8 - JavascriptMoh .SView Answer on Stackoverflow
Solution 9 - Javascriptuser51324View Answer on Stackoverflow