[英]"Error: ENOENT: no such file or directory" after installing global npm package
[英]Linux NodeJS global NPM package “:No such file or directory”
我正在使用Ubuntu 14.04并安装了nodejs
和npm
:
sudo apt-get install nodejs npm
然后我创建了一个符号链接,使包能够使用node
解释器(而不是nodejs
):
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
我安装了coffee-script
(用于测试目的)和我自己的包, mangarack
,用:
sudo npm -g install coffee-script mangarack
当我运行coffee
( coffee-script
一部分)时,该包运行正常。 如果我运行mangarack
,我会得到:
: No such file or directory.
我的package.json
有以下内容:
"bin": {
"mangarack": "./bin/mangarack"
},
该文件包含:
#!/usr/bin/env node
require('../lib/cli/index');
我看了一下coffee-script
是如何做到的,看起来我的require
语句是绝对错误的,所以我用console.log
语句替换它,看看文件是否实际在node
运行。 它没有。 我错过或错过配置什么来启用基于Linux的计算机来运行此程序包?
完整源代码参考:
问题是文件bin/mangarack
使用回车,这会导致linux环境出错。 看看我得到了什么:
$ mangarack --help
env: node\r: No such file or directory
$ head -n 1 `which mangarack` | hexdump
0000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 6e
0000010 6f 64 65 0d 0a
0000015
注意node
后面的字符\\r
(十六进制模式下为0d
)。 你应该删除它。
解决方案:使用$ git config core.autocrlf
设置项目,然后提交更改。 请参阅https://help.github.com/articles/dealing-with-line-endings/
修复后的预期结果应为:
$ head -n 1 `which mangarack` | hexdump
0000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 6e
0000010 6f 64 65 0a
0000015
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.