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

时间:2018-07-17 23:17:47

标签: javascript json node.js executable

我已经编写了一个需要在index.js之前执行的文件,因为它使用Commander要求用户将信息传递给索引文件。我将其放置在bin目录中,但是我不确定如何使其运行。我可以cd进入目录并运行node <file_name>并将所需的值传递给它,并且运行良好(因为我将索引导出并导入到文件中并在最后调用它),但是在那里不是将其添加到package.json中以使用更简单的命令运行它的方法吗?

可执行文件:

#!/usr/bin/env node

const program = require('commander');
const index = require('../src/index.js')

program
	.version('0.0.1')
	.option('-k, --key <key>')
	.option('-s, --secret <secret>')
	.option('-i, --id <id>')
	.parse(process.argv);
	
let key = program.key;
let secret = program.secret;
let publicId = program.id;

index(key, secret, publicId);

1 个答案:

答案 0 :(得分:0)

当应该将Node.js脚本作为可执行文件运行时,将其指定为package.json bin option

  

要使用此功能,请在package.json中提供一个bin字段,这是命令名到本地文件名的映射。在安装时,npm会将文件符号链接到前缀/ bin(对于全局安装),或..nodenodemodules / .bin /(对于本地安装)。

它可以位于src或其他位置:

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