빠른 참조

Commander.js CLI 라이브러리 치트시트

Node.js용 명령줄 인터페이스 구축 솔루션 Commander.js 퀵 레퍼런스: 옵션 플래그, 서브커맨드, 인수 파싱 및 커스텀 도움말 구성.

· 게시일

Commander.js Commander.js는 Node.js 환경에서 완전한 명령줄 인터페이스(CLI) 도구를 구축하기 위한 표준 솔루션입니다.

기본 CLI 환경 설정

const { program } = require('commander');

program
  .name('my-cli')
  .description('Sample CLI utility written in Node.js')
  .version('1.0.0');

옵션 및 플래그 파싱

program
  .option('-p, --port <number>', 'specify port number', 3000)
  .option('-s, --silent', 'suppress terminal output')
  .option('-e, --env <mode>', 'execution environment', 'development')
  .requiredOption('-c, --config <path>', 'path to configuration file');

program.parse(process.argv);

const options = program.opts();
console.log(options.port, options.silent, options.config);
  • <value>: 필수 인수 값.
  • [value]: 선택적 인수 값.
  • 인수 값을 받지 않는 플래그는 불리언(boolean) 토글로 동작합니다.

하위 명령 (Subcommands)

program
  .command('clone <source> [destination]')
  .description('clone a repository into a directory')
  .option('-b, --branch <name>', 'clone a specific branch')
  .action((source, destination, cmdOptions) => {
    console.log(`Cloning ${source} into ${destination || '.'}`);
  });

program.parse();

도움말 출력 사용자 지정

// --help 출력 하단에 사용자 정의 예제 텍스트 추가
program.addHelpText('after', `
Example call:
  $ my-cli -c ./app.json --port 8080
`);

// 도움말 화면을 수동으로 터미널에 출력
program.outputHelp();

관련 주제