browserify错误/ usr / bin / env:node:没有这样的文件或目录

我通过apt-get install和所有依赖项安装了节点js和npm,然后安装了browserify

npm install browserify -g 

它贯穿整个过程,看起来好像安装正确,但是当我尝试在本演练中做一个简单的包时

我得到的错误:

/ usr / bin / env:node:没有这样的文件或目录

在这里输入图像说明

一些linux发行版安装的nodej不是“node”可执行的,而是“nodejs”。

在这种情况下,必须手动链接到“节点”,因为许多软件包在“节点”二进制之后被编程。 类似的事情也发生与“python2”没有链接到“python”。

在这种情况下,你可以做一个简单的符号链接。 对于将软件包二进制文件安装到/usr/bin Linux发行版,您可以执行此操作

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

新答案:

  1. 卸载已经通过系统软件包pipe理器(dnf,apt-get等)安装的任何nodejs软件包,删除任何重新创build每个升级(lol)的愚蠢符号链接。
  2. 安装NVM,
  3. 使用nvm来安装nodejs:nvm install 6

老答案:

任何关于创build符号链接或安装其他节点包的讨论都是虚假的,而且是不可持续的。

解决这个问题的正确方法是:

  1. 使用apt-get简单安装nodejs包就像你已经有了
  2. 使用update-alternatives来指示你的nodejs二进制文件负责#!/usr/bin/env node

像这样:

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

这在整个软件包升级,远程升级等方面都变得可持续。

运行apt-get install nodejs-legacy

某些linux发行版已经改变了node.js二进制名称,使得它与很多node.js包不兼容。 包nodejs-legacy提供了一个符号链接来解决这个问题。

您也可以使用NVMNodejs版本pipe理器来安装Nodejs。 使用版本pipe理器有很多好处 。 其中之一是你不必担心这个问题。

说明:

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

安装必备软件包之后,可以从项目的GitHub页面下拉nvm安装脚本。 版本号可能不同,但一般来说,您可以使用以下语法下载并安装它:

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

这将下载脚本并运行它。 它会将软件安装到~/.nvm主目录的子目录中。 它还会将必要的行添加到~/.profile文件中以使用该文件。

要访问nvmfunction,您需要注销并重新login,或者可以获取〜/ .profile文件,以便当前会话知道有关更改:

 source ~/.profile 

现在你已经安装了nvm,你可以安装独立的Node.js版本。

要找出可用于安装的Node.js版本,可以键入:

 nvm ls-remote . . . v0.11.10 v0.11.11 v0.11.12 v0.11.13 v0.11.14 

正如你所看到的,写这篇文章时的最新版本是v0.11.14。 你可以通过input以下命令来安装

 nvm install 0.11.14 

通常,nvm将切换到使用最近安装的版本。 您可以通过键入以下命令来明确告诉nvm使用我们刚刚下载的版本:

 nvm use 0.11.14 

当您使用nvm安装Node.js时,可执行文件被称为节点。 您可以通过input以下命令来查看shell正在使用的版本:

 node -v 

这个补充教程可以在这里find

 sudo apt-get install nodejs-legacy 

这将创build符号链接/usr/bin/node -> nodejs

资料来源: https : //lists.debian.org/debian-devel-announce/2012/07/msg00002.html

你必须调用“nodejs”而不是“node”。 要validation这一点,请在shell上键入node -v :如果没有find,请尝试nodejs -v 。 如果显示一个版本号,那么你应该使用的命令是nodejs而不是node 。 因此,您必须将脚本中的nodejsnode更改为nodejs (如下所示):replace

 #!/usr/bin/env node 

 #!/usr/bin/env nodejs 

您可能还必须以超级用户的身份打开脚本。

当我在Linux中构buildprimefaces时,我似乎也遇到同样的问题。

 sudo apt-get install nodejs-dev 

修复我的问题。对你有帮助。

如果你不想符号链接,你可以做到这一点。 在Ubuntu的工作

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

和谐标签是为了新的ECMAscript和谐