npm bin属性未按预期工作

时间:2015-06-03 20:10:33

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

我写了一个简单的'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

上找到该模块

2 个答案:

答案 0 :(得分:1)

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

#! /usr/bin/env node

现在我可以像它一样:

addheader 'test.txt' 'my header'

答案 1 :(得分:0)

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

业力

  

未指定命令。 Karma - 用于JavaScript的壮观测试赛跑者。

节点业力

  

module.js:338       扔错了;             错误:找不到模块