Roe*_*den 4 javascript linux node.js npm
我正在使用Ubuntu 14.04并已安装nodejs并npm使用:
sudo apt-get install nodejs npm
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个符号链接,使包能够使用node解释器(而不是nodejs):
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
Run Code Online (Sandbox Code Playgroud)
我安装coffee-script(用于测试目的)和我自己的包mangarack,用:
sudo npm -g install coffee-script mangarack
Run Code Online (Sandbox Code Playgroud)
当我运行coffee(部分coffee-script)时,该包运行正常.如果我跑mangarack,我会得到:
: No such file or directory.
Run Code Online (Sandbox Code Playgroud)
我有以下内容package.json:
"bin": {
"mangarack": "./bin/mangarack"
},
Run Code Online (Sandbox Code Playgroud)
该文件包含:
#!/usr/bin/env node
require('../lib/cli/index');
Run Code Online (Sandbox Code Playgroud)
我看了coffee-script它是怎么做的,看起来我的require语句是绝对错误的,所以我用一个console.log语句替换它,看看文件是否实际运行node.它没有.我错过或错过配置什么来启用基于Linux的计算机来运行此程序包?
完整源代码参考:
sha*_*zhu 10
问题是文件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
Run Code Online (Sandbox Code Playgroud)
注意后面的字符\r(0d以十六进制模式)node.你应该删除它.
解决方案:设置项目,$ 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
Run Code Online (Sandbox Code Playgroud)