Node.js npm bin属性未按预期工作
我编写了一个简单的“addheader”节点模块,并将其发布在npm上。它包含一个cli脚本,我在bin属性的package.json配置文件中注册了该脚本,如下所示:Node.js npm bin属性未按预期工作,node.js,npm,command-line-interface,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 很遗憾,我无法按预
{
"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,但我不知道我做错了什么
顺便说一下,我正在mac上运行node版本0.12.4
您可以在NPMJ上找到该模块如果您创建了一个bin,您不应该使用
节点调用它
它只是一个独立的二进制文件
业力
未指定命令。Karma—JavaScript的出色测试运行程序
结业
module.js:338
犯错误;
错误:找不到模块
如果您创建了一个bin,您不应该使用
节点调用它,它只是一个独立的二进制文件
业力
未指定命令。Karma—JavaScript的出色测试运行程序
结业
module.js:338
犯错误;
错误:找不到模块
我通过在addHeaderCli.js顶部添加以下行来解决问题:
#! /usr/bin/env node
现在我可以像这样计算:
addheader 'test.txt' 'my header'
我通过在addHeaderCli.js顶部添加以下行来解决问题:
#! /usr/bin/env node
现在我可以像这样计算:
addheader 'test.txt' 'my header'
我通过在cli文件顶部添加以下行解决了此问题:code
#/usr/bin/env节点。现在我可以像这样对其进行校准:code
addheader'test.txt''我的头'code
我通过在cli文件顶部添加以下行来解决问题:code
#/usr/bin/env节点。现在我可以像这样计算:code
addheader'test.txt''我的头'code
我认为这不是正确的方法。NPM将为您执行该逻辑,如果您将其放在bin下,它还将考虑Windows。你的问题是你在addheader之前调用了node。我现在可以在没有“node”的情况下调用它。谢谢你的提示,我将改变问题中的呼叫。我认为这不是正确的方式。NPM将为您执行该逻辑,如果您将其放在bin下,它还将考虑Windows。你的问题是你在addheader之前调用了node。我现在可以在没有“node”的情况下调用它。谢谢你的提示,我将在问题中更改呼叫。