作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 Ubuntu 14.04 并安装了 nodejs
和 npm
:
sudo apt-get install nodejs npm
然后我创建了一个符号链接(symbolic link),使包能够使用 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
关于javascript - Linux NodeJS 全局 NPM 包 ":No such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27331758/
我是一名优秀的程序员,十分优秀!