我正在尝试通过节点传递命令行参数,如:npm start -s config.yml
,其中npm 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
时,它返回未定义。我做错了什么?
答案 0 :(得分:1)
运行以下内容:
$ 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);
给我命令的动作函数中的命令和参数。