Node.js NodeJS指挥官结构化子命令
我是指挥官的新手,我正在尝试实现如下命令树:Node.js NodeJS指挥官结构化子命令,node.js,node-commander,Node.js,Node Commander,我是指挥官的新手,我正在尝试实现如下命令树: |- build | |- browser (+ options) | |- cordova (+ options) | |- no subcommands, just options |- config | |- create (+ options) 是否可以将这些命令拆分为多个文件,例如,类似这样的文件: |- build | |- browser (+ options) | |- cordova (+ op
|- build
| |- browser (+ options)
| |- cordova (+ options)
| |- no subcommands, just options
|- config
| |- create (+ options)
是否可以将这些命令拆分为多个文件,例如,类似这样的文件:
|- build
| |- browser (+ options)
| |- cordova (+ options)
| |- no subcommands, just options
|- config
| |- create (+ options)
中心文件:
const program=newcommander.Command();
program.command('build')。说明(…);
program.command('config').description(…);
生成命令的文件:
program.command('browser').description(...);
program.command('cordova').description(...);
program.option(...);
配置命令的文件:
program.command('create').description(...);
我知道Git风格的子命令,但它们似乎需要可执行文件(我只有常规的JS文件)Commander中明确支持独立的子命令“可执行”文件,扩展名为
.JS
,无需设置文件权限等,即可在命令行上直接执行
pm.js
pm-config.js
const commander = require('commander');
const program = new commander.Command();
program
.command('create')
.description('create description')
.action(() => {
console.log('Called create');
});
program.parse(process.argv);
他们的文档中有一个例子:
const commander = require('commander');
const program = new commander.Command();
const brew = program.command('brew');
brew
.command('tea')
.action(() => {
console.log('brew tea');
});
brew
.command('coffee')
.action(() => {
console.log('brew coffee');
});
示例输出:
$ node nestedCommands.js brew tea
brew tea
如果我正确阅读了commander的GitHub版本,commander v5中commander5.0可能有关于此功能的更新。您可以在单个程序中使用动作处理程序来嵌套命令。以前,一层以上的子命令需要独立的可执行文件。
$ node nestedCommands.js brew tea
brew tea