无法 link 命令节点脚本文件,没有那个文件或目录

Can't link command to node script file, no such file or directory

我在 linux 机器上尝试使用 npm link 对 javascript 文件的命令时遇到了麻烦。假设一些简单的脚本和 package.json:

package.json

"bin": {
  "test": "./test.js"
},

test.js

#!/usr/bin/env node
console.log("test");

安装

$ sudo npm install
$ sudo npm link

在 windows 机器上执行此操作没有问题。一切正常。但是在 linux / Raspbian 系统上它一直告诉我:

: no such file or directory

我已经将节点的二进制文件链接到:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node

可以肯定的是,我已经更新到最新版本的节点 7.10.0。但没有任何帮助。该消息仍然出现。我不知道怎么了...

经过长时间的搜索,问题似乎出在 windows 行尾。它们需要转换为 unix 风格的结尾。这是我所做的唯一更改,现在它起作用了。这个问题只属于shebang行,因为node解释器本身对原文件没有问题...

对于此测试,我安装并使用了 dos2unix,它转换文件:

$ sudo apt install dos2unix
$ sudo dos2unix test.js

执行此操作后,初始 test 命令就像一个魅力。所以我把开发版本的文件改成了unix风格,所以我不需要运行这个了。