繁体   English   中英

Linux NodeJS全局NPM包“:没有这样的文件或目录”

[英]Linux NodeJS global NPM package “:No such file or directory”

我正在使用Ubuntu 14.04并安装了nodejsnpm

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

当我运行coffeecoffee-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM