利用nodejs
开发一个前端脚手架,首先面临的问题是如何定义并解析命令行的命令、参数、配置等信息。业界流行的两个库是yargs
和commander
,其中commander
更为强大,本文将详细介绍commander
的使用。
全局配置options
获取program
对象有两种方式:
// 获取commander单例
const { program } = commander
// 手动实例化一个commander实例
const program = new commander.Command();
#!/usr/bin/env node
const commander = require('commander')
const pkg = require('../package.json')
const program = new commander.Command()
program.usage('<command> [options]')
program.version(pkg.version)
program.parse()
commander
会默认有两个全局配置(options) --versiong -V 和 --help -h
,因此你可以执行下面语句:
test-cli -V // 1.0.0
除了默认全局配置,我们还可以增加自己定义的全局配置:
// 第三个参数是默认值
program.option('-d, --debug', '是否开启调试模式', false)
// -e 后面必须要输入值,因为<>表示必填
program.option('-e, --envName <envName>', '获取环境变量')
执行test-cli -h
:
如果获取options
的值呢?
// 获取所有options的值
program.opts()
全局配置options有四种写法,如下: