我正在尝试安装node.js模块'javascripting'(源代码可以找到:https://github.com/sethvincent/javascripting)并且无法将其作为全局变量安装到终端中运行。
安装node.js后,我试图用以下行安装javascripting:npm install --global javascripting
虽然我理解这应该有用,但它只下载模块,但不会将其设置为在终端中运行的全局变量。
尝试将其作为全局变量运行时收到的错误是“/ usr / bin / env:node:没有这样的文件或目录”。
收到此错误后,我尝试将模块从安装在(usr / local / lib / node_modules / javascripting)的目录中移动到/ usr / bin / env。不幸的是,我无法移动文件,因为/ usr / bin / env不是目录,而是它似乎是某种可执行的java文件(usr / bin是一个目录)。
我有点失落,并且非常喜欢有关如何将模块安装为工作全局变量的建议,或者是否有其他方法来运行模块而不将其作为全局变量安装。
答案 0 :(得分:1)
如果$ PATH中没有安装node.js二进制文件(node
),就会发生这种情况。
如果你自己运行env node
,你会得到同样的错误。看起来这可能是一个Ubuntu错误:https://github.com/joyent/node/issues/3911
尝试sudo ln -s /usr/bin/nodejs /usr/bin/node
- 这会将名称Ubuntu中的node.js二进制文件符号链接到它应该具有的名称。
编辑: 正如mscdex在评论中指出的那样(并且在我链接的bug的末尾提到),你可以安装一个遗留软件包来创建这个符号链接。
sudo apt-get install nodejs-legacy
我上面链接的错误表明Ubuntu / Debian的默认node.js包可能存在其他问题,建议您从那里提到的PPA或源代码中安装自己的。
您可能还需要遵循NPM modules won't install globally without sudo中的建议。