arg
zeit/arg 패키지를 이용하면 된다.
사용법
arg 함수 하나로 파싱이 가능하다.
1 2 3 4 5 6 7
| const arg = require('arg');
const args = arg( spec, (options = { permissive: false, argv: process.argv.slice(2) }) );
|
세부적인 사용방법은 다음과 같다.
- 타입을 정하고
- 옵션과 축약 옵션을 정하고
- 검증을 넣는다.
소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| const help = () => { console.log(`usage => ...`); };
let args = {}; try { args = arg({ '--help': Boolean, '--user': String, '--password': String, '--verbose': arg.COUNT, '--test': Boolean,
'-h': '--help', '-u': '--user', '-p': '--password', '-v': '--verbose', }); } catch (err) { if (err.code === 'ARG_UNKNOWN_OPTION') { help(); process.exit(1); } }
if (!(args['--user'] && args['--password'])) { help(); process.exit(1); }
if (args['--test'] === true) { process.env.TEST = 1; }
|