npm bin脚本未在Windows中正确创建

时间:2016-06-18 03:35:47

标签: javascript node.js npm command-line-interface

我正在创建一个可以在命令行中使用的NPM包。我正在使用npm的bin来指定我要执行的JS文件。这是我的package.json

"name": "textree",
"bin": {
    "textree": "./src/cli.js"
  },

但是,当我运行npm link时,由npm创建的批处理命令具有如下内容:

@"%~dp0\node_modules\textree\src\cli.js"   %*

当我运行该命令时,我收到错误: /node_modules/textree/src/cli.js:没有这样的文件或目录

如果我检查其他命令行工具,例如nodemon,他们的批处理脚本有:

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\node_modules\nodemon\bin\nodemon.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\node_modules\nodemon\bin\nodemon.js" %*
)

由于我的工具的批处理脚本不包含类似的代码,因此在运行它时会失败。

知道怎么解决吗?如何让npm为我的包中的nodemon生成相同的脚本?

1 个答案:

答案 0 :(得分:1)

我自己想通了。我错过了在我的“./src/cli.js”脚本顶部添加hashbang行。

#!/usr/bin/env node