node.js write command line

1. Create command file

hello.js

#!/usr/bin/env node
console.log(`hello world`);

2. Modify package.json

Add configuration

{
    
    
  ......
  "bin": {
    
    
    "hello": "scripts/hello.js"
  },
  ......
}

Local testing needs to execute the command:

npm link

test:

hello

insert image description here

3. Handling command line arguments

#!/usr/bin/env node
console.log(`hello ${
      
      process.argv[2]}`);
console.log('process.argv:', process.argv);

insert image description here

4. Commander processing parameters

Version 8.1.0
introduces dependencies:

const program = require('commander');

4.1 option

function myParseInt(value, other) {
    
    
  return parseInt(value);
}

program
  .version('0.0.1', '-v, --version')
  .option('-p --port <port>', '端口号', myParseInt, 8080)
  .parse(process.argv);

const options = program.opts();

console.log('port: %j', options.port);

insert image description here

4.1.1 Mutable variables

program
  .version('0.0.1', '-v, --version')
  .option('-p --port <port>', '端口号', myParseInt, 8080)
  .option('-m --many [vars...]', '可变变量')
  .parse(process.argv);

const options = program.opts();

console.log('options', options);

insert image description here

4.1.2 Required options

.requiredOption() configuration format is the same as option.

program
  .version('0.0.1', '-v, --version')
  .option('-p --port <port>', '端口号', myParseInt, 8080)
  .option('-m --many [vars...]', '可变变量')
  .requiredOption('-r --require [r]', '-r必须存在,不存在会报错')
  .parse(process.argv);

const options = program.opts();

console.log('options', options);

Error:
insert image description here
Normal:
insert image description here

4.1.3 no- prefix

no-option can set option to false.

program
  .version('0.0.1', '-v, --version')
  .option('-p --port <port>', '端口号', myParseInt, 8080)
  .option('-m --many [vars...]', '可变变量')
  .requiredOption('-r --require [r]', '-f必须存在,不存在会报错', '99')
  .option('-s --sauce [sauce]', '测试no-前缀,sauce可以使布尔类型也可以是值类型,也可以有默认值','300g')
  .option('--no-sauce', '配置sauce前缀,将sauce的值设置为false')
  .parse(process.argv);

const options = program.opts();

console.log('options', options);

insert image description here

Reference address:

commonder: https://segmentfault.com/a/1190000019350684

Guess you like

Origin blog.csdn.net/qq_36968599/article/details/119453191
Recommended