【问题标题】:Writing command line tool with node用node编写命令行工具
【发布时间】:2016-07-08 12:12:33
【问题描述】:

我正在尝试使用 node 创建一个命令行工具(遵循these instructions)。

所以我将“bin”添加到 package.json 文件中

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

创建 index.js 文件

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

我使用$ sudo npm link

最后我尝试通过终端运行它,但我得到了-bash: /usr/local/bin/test: usr/bin/env: bad interpreter: No such file or directory

有什么想法吗?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    我认为在这种情况下不需要 npm 链接;您通常会使用它来连接文件系统中的模块,否则您可能会通过 npm install 命令拉入该模块。

    不过,你的 shebang 语法在我看来,缺少前导斜杠:

    #!/usr/bin/env node
    

    【讨论】:

    • 这似乎是问题所在。我按照我提到的教程使用 npm 链接。不知道有没有其他方法可以通过node创建命令行工具。
    • 我对 npm link 的看法是,它不直接参与制作命令行工具,它在逻辑上相当于 npm install 但对于您尚未发布的硬盘驱动器上的本地模块到 npm 存储库。
    【解决方案2】:

    npm link 在本地链接模块。对于您的 bin,这意味着二进制文件已安装到 node_modules/.bin/(如果我没记错的话)。

    要全局链接一个包,你应该使用--local arg。

    npm link . --local

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-26
      • 2015-03-20
      • 1970-01-01
      • 2016-07-21
      • 2023-04-08
      • 2013-02-19
      • 2014-05-14
      • 2018-11-03
      相关资源
      最近更新 更多