代码之家  ›  专栏  ›  技术社区  ›  yourknightmares

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

  •  0
  • yourknightmares  · 技术社区  · 7 年前

    我已经编写了一个需要在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 回复  |  直到 7 年前
        1
  •  0
  •   Estus Flask    7 年前

    当node.js脚本应该作为可执行文件运行时,它被指定为package.json bin option :

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

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

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