【问题标题】:Cannot run node executable with #!/usr/bin/env node无法使用 #!/usr/bin/env 节点运行节点可执行文件
【发布时间】:2017-12-13 15:34:43
【问题描述】:

我正在尝试编写自己的 npm 可执行文件,但是在尝试运行可执行文件时在另一个项目中安装依赖项时出现错误

$ node_modules/.bin/html-linter    
: No such file or directory

该文件确实存在,并且顶部有节点 shebang(我完全复制了 tslint 可执行文件的内容)

如果我这样称呼它

$ node node_modules/.bin/html-linter

效果很好,但我不想这样做

我的可执行文件看起来像:

#!/usr/bin/env node

require('../lib/html-linter-cli');

路径很好,如果我在控制台中运行 /usr/bin/env node 它可以工作,如果我运行 node --version 我会得到正常的输出。

如果你想从 npm 安装包,你可以,它被称为 html-linter

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    查看完整的错误消息(不幸的是,它在您的终端中被隐藏了):

    $ node_modules/.bin/html-linter
    env: node\r: No such file or directory
    

    \r 表示您在 shebang 行中有回车,可能是由于 Windows 样式的行结尾(在您的情况下,此字符导致您的终端重新启动行,覆盖部分错误并使其更难查看)。 file 命令证实了这一点。

    $ file node_modules/.bin/html-linter
    node_modules/.bin/html-linter: a /usr/bin/env node script text executable, ASCII text, with CRLF line terminators
    

    解决方案:不要使用 Windows 行结尾(几乎永远),并使用 Unix 样式的 LF 结尾保存文件。任何体面的代码编辑器都应该有这个选项。

    【讨论】:

    • 是的!非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2023-03-19
    • 2018-02-17
    • 2019-01-15
    • 2016-09-19
    • 2015-07-28
    相关资源
    最近更新 更多