node 에서 commander
패키지를 통해서 cli 를 구축 할 수 있다.
$ npm install commander
아래와 같이 옵션을 생성한다
# node-cli
const { Command } = require('commander');
const program = new Command();
program
.command('test [slack api jira]')
.option('-n, --name <name>', 'file name')
.option('-c, --compress', 'compress')
.parse();
console.log(program.opts().n);
console.log(program.opts().name);
console.log(program.opts().compress);
$ node node-cli test slack -n a.txt
아래와 같이 default value 를 지정해줄 수 있다
const { Command } = require('commander');
const program = new Command();
program
.option('-n, --name <name>', 'file name', 'default file name')
.option('-c, --compress', 'compress', false)
.parse();
console.log(program.opts().name);
console.log(program.opts().compress);
아래와 같이 required option 을 지정해줄 수 있다
const { Command } = require('commander');
const program = new Command();
program
.requiredOption('-n, --name <name>', 'file name')
.option('-c, --compress', 'compress', false)
.parse();
console.log(program.opts().name);
console.log(program.opts().compress);
const { Command } = require('commander');
const program = new Command();
program
.command('test')
.description('description about the command')
$ node node-cli --version
> 1.0.0
위와 같이 version 정보를 출력하려면 아래와 같이 지정해주면 된다
const { Command } = require('commander');
const program = new Command();
program
.version("1.0.0")
.parse();
# package.json
{
...
"version": "1.0.0"
}
--version
을 통해서 package.json 에 존재하는 version 정보를 출력 할 수도 있다.
const { Command } = require('commander');
const packageJson = require('./package.json');
const program = new Command();
program
.requiredOption('-n, --name <name>', 'file name')
.option('-c, --compress', 'compress', false)
.version(packageJson.version)
.parse();
console.log(program.opts().name);
console.log(program.opts().compress);
[node-cli] https://kim-oriental.tistory.com/29