节点npm包抛出使用strict:发布并安装globaly后找不到命令

我正在尝试发布npm包,当我安装全局包,并尝试运行cli命令我得到这个错误:

/.nvm/versions/node/v0.12.2/bin/myPack: line 1: use strict: command not found /.nvm/versions/node/v0.12.2/bin/myPack: line 3: syntax error near unexpected token `(' /.nvm/versions/node/v0.12.2/bin/myPack: line 3: `var _commandLineArgs = require('command-line-args');' 

该错误引用的文件的顶部:

 'use strict'; var _commandLineArgs = require('command-line-args'); var _commandLineArgs2 = _interopRequireDefault(_commandLineArgs); 

package.json bin部分:

  "bin": { "myPack": "dist/myPack.js" } 

当我在本地开发中运行这个时,效果很好,问题是什么?

你的脚本应该以shebang行开始,否则它将作为shell脚本执行(因此是错误)。

将此作为第一行添加到dist/myPack.js

 #!/usr/bin/env node