npm bin 属性 没有按预期工作

npm bin property is not working as expected

我写了一个简单的 'addheader' 节点模块并发布在 npm 上。它包含一个 cli 脚本,我在 bin 属性 的 package.json 配置文件中注册如下:

{ 
   "name" : "addheader", 
   "bin" : "./addHeaderCli.js" 
}

使用 "npm install addheader" 安装模块 我可以在 node_modules 文件夹中看到如下 cli 脚本:

node_modules/.bin/addheader

不幸的是,我无法按预期使用 cli。当 运行 它像这样:

node addheader 'test.txt' 'A header'

它总是失败并出现以下错误:

Error: Cannot find module '/Users/sepp/camp/npmbuild/addheader'
 at Function.Module._resolveFilename (module.js:336:15)
 at Function.Module._load (module.js:278:25)
 at Function.Module.runMain (module.js:501:10)
 at startup (node

运行 它提供的路径工作正常:

./node_modules/.bin/addheader 'test.txt' 'A header'

我已经咨询了 npm documentation 但我无法弄清楚我做错了什么。

顺便说一句,我 运行 在 mac.

上安装节点版本 0.12.4

您可以在 npmjs 上找到该模块 https://www.npmjs.com/package/addheader

如果您创建了一个 bin,您不应该使用 node 调用它,它只是一个独立的二进制文件。

业力

Command not specified. Karma - Spectacular Test Runner for JavaScript.

节点业力

module.js:338 throw err; Error: Cannot find module

我通过在 addHeaderCli.js 的顶部添加以下行解决了这个问题:

#! /usr/bin/env node

现在我可以这样称呼它了:

addheader 'test.txt' 'my header'