节点bin文件在linux或osx上不被识别
我一直使用Windows中的PyCharm开发节点cli应用程序,它只能在Windows上工作,但总是返回: No such file or directory
从Linux运行时: No such file or directory
。 我已经能够使用一个相当基本的例子作为一个testing重现这个问题。 尝试安装每个版本,并注意从Windows发布的版本无法在Linux或OSX上运行。
从Windows发布: npm -g install cli-test@1.0.0 && cli-test
从Linux发布: npm -g install cli-test@2.0.0 && cli-test
的package.json:
{ "name": "cli-test", "version": "0.0.1", "bin": { "cli-test": "./cli.js" } }
cli.js
#!/usr/bin/env node console.log('hello world!');
如果我编写这个代码,然后使用sudo npm -g install
从Linux上的项目目录安装它,然后运行cli-test
它会抛出上面提到的错误。 如果我从Windows做同样的控制台日志。
我可以通过使用以下步骤使它在Linux上工作:
- 在Linux上打开项目目录
- 将
cli.js
重命名为cli.old.js
- 创build一个名为
cli.js
的新文件 - 将旧文件的内容复制到新文件
当我从Windows发布到npm而不从Linux手动重新创build文件时,为什么它不能在Linux上运行?
基于Windows的行结尾正在杀死你。 完整的错误说, env: node\r: No such file or directory
因为Windows放在\ r那里(作为\ r \ n换行的一部分),但是Linux和OSX只是使用\ n作为换行符。
有关NPM的github问题正在进行讨论,以及几个可能的解决方法: https : //github.com/npm/npm/issues/2097