无法与Commanderjs完成交互怎么解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (39)

试图通过节点传递一个命令行参数,如下所示:npm start -s config.ymlnpm start映射到node app.js我的package.json

app.js 如下所示:

const program = require('commander');

console.log(process.argv);

program
    .command('-s, --shell <value>', '.yml config file')
    .parse(process.argv);

console.log(program.shell);

该参数正在传递process.argv,但是当我登录program.shell时会返回undefined。我究竟做错了什么?

提问于
用户回答回答于

运行以下内容:

$ node runme.js shell aceofspades

在以下文件中:

// FILE: runme.js
const program = require('commander');

program
  .command('shell [value]', '.yml config file')
  .action((cmd, opt) => {
    console.log('cmd:', cmd);   // shell
    console.log('opt:', opt);   // aceofspades
  });

program.parse(process.argv);

给出命令的动作函数中的命令和参数。

扫码关注云+社区

领取腾讯云代金券