1

我正在尝试通过节点传递命令行参数,如下所示: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它时返回未定义。我究竟做错了什么?

4

1 回答 1

2

运行以下:

$ 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);

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

于 2018-06-01T18:54:51.980 回答