我正在尝试安装 node.js 模块“javascripting”(可以找到源代码:https://github.com/sethvincent/javascripting),但无法将其安装为全局变量以通过终端运行。
安装 node.js 后,我尝试使用以下行安装 javascripting:npm install --global javascripting
虽然据我所知这应该有效,但它只下载模块但没有将其设置为要在终端中运行的全局变量。
尝试将其作为全局变量运行时我收到的错误是“/usr/bin/env: node: No such file or directory”。
收到此错误后,我尝试将模块从其安装目录 (usr/local/lib/node_modules/javascripting) 移动到/usr/bin/env。不幸的是,我无法移动这些文件,因为/usr/bin/env 不是一个目录,它似乎是某种可执行 java 文件(usr/bin 是一个目录)。
我有点迷茫,希望得到一些关于如何将模块安装为工作全局变量或是否有另一种运行模块而不将其安装为全局变量的方法的建议。
最佳答案
如果 node.js 二进制文件 (node
) 没有安装在 $PATH 中的任何地方,就会发生这种情况。
如果你单独运行env node
,你会得到同样的错误。看起来这可能是一个 Ubuntu 错误:https://github.com/joyent/node/issues/3911
尝试 sudo ln -s/usr/bin/nodejs/usr/bin/node
- 这会将 node.js 二进制文件从 Ubuntu 给它的名称符号链接(symbolic link)到它应该有的名称。
编辑: 正如 mscdex 在评论中指出的(以及在我链接的错误末尾提到的),您可以安装一个遗留包,它应该创建这个符号链接(symbolic link)。
sudo apt-get install nodejs-legacy
我在上面链接的错误表明 Ubuntu/Debian 的默认 node.js 包可能存在其他问题,并建议您从那里提到的 PPA 或源代码安装自己的。
您可能需要遵循 NPM modules won't install globally without sudo 中的建议
关于javascript - 将模块安装为全局变量时出现问题 --/usr/bin/env 不是目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530675/