不调用节点NPM-生成的命令(npm-generated command not calling n

2019-07-29 18:07发布

我试图创建一个node.js的命令行实用程序,并具有与NPM生成包装的问题。 我的超简单的演示是的package.json文件:

{
    "name": "demo-cli",
    "version": "0.0.1",
    "bin": { "demo": "bin/demo-cli.js" }
}

和演示文件cli.js:

console.log('DEMO WORKED');

问题是,当我使用安装模块npm install -g而在项目目录它所产生的包装不调用节点与文件作为参数。 这是demo.cmd的所产生的内容:

:: Created by npm, please don't edit manually.
"%~dp0\.\node_modules\demo-cli\bin\demo-cli.js"   %*

UNIX版本有同样的问题。 纵观全球范围内相互安装CLI我可以看到,节点正在测试并称为预期。

:: Created by npm, please don't edit manually.
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\.\node_modules\mocha\bin\mocha" %*
) ELSE (
  node  "%~dp0\.\node_modules\mocha\bin\mocha" %*
)

什么是需要的NPM来产生正确的脚本文件中的秘密武器? 我用尽了一切我能找到所想的,包括拆除.js扩展,宁愿全球,指定节点版本...没有运气。

我使用的Windows 7 X64的节点v0.6.18和NPM v1.1.21。

Answer 1:

尝试把

#!/usr/bin/env node

在你的上面demo-cli.js文件。

在Windows中, npm查找创建时,这个家当线.cmd包装。 见CMD-shim.js在npm源获取更多信息。



文章来源: npm-generated command not calling node
标签: node.js npm