Node.js 无法使用Commanderjs获取参数

Node.js 无法使用Commanderjs获取参数,node.js,node-commander,Node.js,Node Commander,我试图通过如下节点传递命令行参数:npm start-s config.yml,其中npm start映射到我的package.json中的node app.js app.js如下: const program = require('commander'); console.log(process.argv); program .command('-s, --shell <value>', '.yml config file') .parse(process.ar

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

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);
const program=require('commander');
console.log(process.argv);
程序
.command('-s,--shell','.yml配置文件')
.parse(process.argv);
console.log(program.shell);
参数正在通过
process.argv
,但当我记录
program.shell
时,它返回时未定义。我做错了什么?

运行以下命令:

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

提供命令的操作函数中的命令和参数。

您使用的是
command
,就好像它是一个选项字段一样。可能库不支持以“-”开头的命令。看起来您还必须附加一个操作?