Node.js命令行东西开辟

Node.js敕令行东西开辟

运用Node.js开辟敕令行东西是开辟者应当控制的一项妙技,恰当编写敕令行东西以进步开辟效力。

hello world

老例子第一个顺序为hello world。在工程中新建bin目次,在该目次下建立名为helper的文件,具体内容以下:

#!/usr/bin/env node

console.log('hello world');

修正helper文件的权限:

$ chmod 755 ./bin/helper 

实行helper文件,终端将会显现hello world

$ ./bin/helper
hello world

标记链接

接下来我们建立一个标记链接,在全局的node_modules目次当中,天生一个标记链接,指向模块的当地目次,使我们能够直接运用helper敕令。
在工程的package.json文件中增加bin字段:

{
  "name": "helper",
  "bin": {
    "helper": "bin/helper"
  }
}

在当前工程目次下实行npm link敕令,为当前模块建立一个标记链接:

$ npm link

/node_path/bin/helper -> /node_path/lib/node_modules/myModule/bin/helper
/node_path/lib/node_modules/myModule -> /Users/ipluser/myModule

如今我们能够直接运用helper敕令:

$ helper
hello world

commander模块

为了更高效的编写敕令行东西,我们运用TJ大神的commander模块。

$ npm install --save commander

helper文件内容修正为:

#!/usr/bin/env node

var program = require('commander');

program
  .version('1.0.0')
  .parse(process.argv);

实行helper -hhelper -V敕令:

$ helper -h

 Usage: helper [options]

 Options:

  -h, --help     output usage information
  -V, --version  output the version number

$ helper -V
1.0.0

commander模块供应-h, --help-V, --version两个内置敕令。

建立敕令

建立一个helper hello <author>的敕令,当用户输入helper hello ipluser时,终端显现hello ipluser。修正helper文件内容:

#!/usr/bin/env node

var program = require('commander');

program
  .version('1.0.0')
  .usage('<command> [options]')
  .command('hello', 'hello the author')  // 增加hello敕令
  .parse(process.argv);

bin目次下新建helper-hello文件:

#!/usr/bin/env node

console.log('hello author');

实行helper hello敕令:

$ helper hello ipluser
hello author

剖析输入信息

我们愿望author是由用户输入的,终端应当显现为hello ipluser。修正helper-hello文件内容,剖析用户输入信息:

#!/usr/bin/env node

var program = require('commander');

program.parse(process.argv);

const author = program.args[0];

console.log('hello', author);

再实行helper hello ipluser敕令:

$ helper hello ipluser
hello ipluser

哦耶,终究到达完成了,但作为顺序员,这还远远不够。当用户没有输入author时,我们愿望终端能提醒用户输入信息。

提醒信息

helper-hello文件中增加提醒信息:

#!/usr/bin/env node

var program = require('commander');

program.usage('<author>');

// 用户输入`helper hello -h`或`helper hello --helper`时,显现敕令运用例子
program.on('--help', function() {
  console.log('  Examples:');
  console.log('    $ helper hello ipluser');
  console.log();
});

program.parse(process.argv);
(program.args.length < 1) && program.help();  // 用户没有输入信息时,挪用`help`要领显现协助信息

const author = program.args[0];

console.log('hello', author);

实行helper hellohelper hello -h敕令,终端将会显现协助信息:

$ helper hello

 Usage: helper-hello <author>

 Options:

  -h, --help  output usage information

 Examples:
  $ helper hello ipluser

$ helper hello -h

 Usage: helper-hello <author>

 Options:

  -h, --help  output usage information

 Examples:
  $ helper hello ipluser

到此我们编写了一个helper敕令行东西,而且具有helper hello <author>敕令。
更多的运用体式格局能够参考TJ – commander.js文档。

症结知识点

npm link

ruanyifeng

commander.js

TJ

    原文作者:Pluser
    原文地址: https://segmentfault.com/a/1190000006258291
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞