Javascript 在index.js之前运行可执行文件

Javascript 在index.js之前运行可执行文件,javascript,json,node.js,executable,Javascript,Json,Node.js,Executable,我编写了一个需要在index.js之前执行的文件,因为它使用commander要求用户将信息传递给索引文件。我把它放在一个bin目录中,但我不知道如何让它运行。我可以cd进入目录,运行node并将所需的值传递给它,它运行良好(当我导出索引并将其导入文件并在最后调用它时),但是没有办法将其添加到包.json中,以便使用更简单的命令运行它吗 可执行文件: #/usr/bin/env节点 const program=需要(“指挥官”); const index=require('../src/ind

我编写了一个需要在index.js之前执行的文件,因为它使用commander要求用户将信息传递给索引文件。我把它放在一个bin目录中,但我不知道如何让它运行。我可以
cd
进入目录,运行
node
并将所需的值传递给它,它运行良好(当我导出索引并将其导入文件并在最后调用它时),但是没有办法将其添加到
包.json
中,以便使用更简单的命令运行它吗

可执行文件:

#/usr/bin/env节点
const program=需要(“指挥官”);
const index=require('../src/index.js')
程序
.版本('0.0.1')
.选项('-k,--key')
.选项('-s,--secret')
.选项('-i,--id')
.parse(process.argv);
让key=program.key;
let secret=program.secret;
让publicId=program.id;

索引(密钥、机密、publicId)当Node.js脚本应该作为可执行文件运行时,它被指定为package.json:

要使用此选项,请在package.json中提供一个bin字段,它是命令名到本地文件名的映射。安装时,npm将把该文件符号链接到前缀/bin中进行全局安装,或将该文件符号链接到前缀/node\u modules/.bin/中进行本地安装

它可以位于
src
或其他地方:

{
  ...
  "bin" : { "foo" : "src/bin.js" },
  ...
}

听起来像是用一个小的批处理文件或shell脚本解决了问题,它运行您的第一个程序,然后将其输出馈送到您的nodejs程序中。@jfriend00 Btw,这正是package.json
bin
所做的,它会在安装时自动创建一组shell脚本和.cmd文件。我已经尝试过了,但是当我尝试使用“``npm ERR!”运行npm时出错了!代码EJSONPARSE npm ERR!JSON.parse无法解析JSON npm ERR!解析“…st”:“happiness”,npm ERR!JSON.parse},npm ERR!JSON.parse“bin”:{npm ERR!JSON.parse”附近时,JSON中的JSON位置140处出现JSON.parse意外标记}“我已经检查了括号,它们都是正确的,如果这是有效的JSON,你不会看到这个错误。考虑检查它。请更新问题,可以复制问题。如果你无法解决它。