全局安装的NodeJS npm模块不使用节点执行main/bin JavaScript文件

全局安装的NodeJS npm模块不使用节点执行main/bin JavaScript文件,javascript,windows,node.js,npm,Javascript,Windows,Node.js,Npm,我有一个包.json如下: { "name": "some-module", "version": "1.0.0", "bin": "./bin/some-module.js", "main": "./bin/some-module.js", "description": "Some module description", "homepage": "http://my.home.page.com", "author": { "name": "Matias F

我有一个
包.json
如下:

{
  "name": "some-module",
  "version": "1.0.0",
  "bin": "./bin/some-module.js",
  "main": "./bin/some-module.js",
  "description": "Some module description",
  "homepage": "http://my.home.page.com",
  "author": {
    "name": "Matias Fidemraizer",
    "email": "no-email@no-email.com",
    "url": "http://some.url.com"
  },
  "engines": {
    "node": ">=0.4.0"
  },
  "keywords": [
     "somekeyword"
  ],
  "license": {
    "type": "Apache v2",
    "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
  },
  "preferGlobal": true,
  "repository": {
    "type": "git",
    "url": "git://github.com/some/repo"
  },
  "dependencies": {
     "somedependency": "*"
  }
}
当我尝试安装整个模块时,键入
npm-g install/path/to/module/folder
npm会在AppData文件夹的默认
node\u modules
位置创建一个
.cmd
文件,以便按预期进行全局安装

但生成的代码不包括
node.exe
node

"%~dp0\node_modules\some-module\bin\some-module.js"   %*
。。。因此,当我尝试在CMD、PowerShell或其他任何程序中执行我的
某个模块时,它是使用Windows脚本主机(WSH)执行的

出于这个原因,我认为比较一些现有模块(如YUIDocJS)的
package.json
就足以找出导致此问题的原因,但我无法找出我自己的
package.json
中的错误,因此它不会创建预期的全局安装


提前感谢您的努力。

您有shebang
#/usr/bin/env节点
,位于
package.json
bin
属性中引用的文件顶部?尽管shebang是一个*nix特定的指令,
npm

BTW,但是YuiDocJs package.json缺少这个*nix引用!需要明确的是:shebang放在bin文件中,而不是package.json。。。这就是为什么YUIDocJS package.json没有它是的,是的,大错,抱歉:)你是对的!这就是解决办法。谢谢,成功了!我正在寻找差异比较
package.json
,但我忘了检查整个bin文件。。。。。!!它没有很好的记录。。。我觉得如果你有时间的话,它应该得到一张火车票=)