如何使用NodeJS和Commander.js创建命令行程序(CLI)

本文将向您展示如何使用Commander.js模块创建命令行npm模块(CLI)。

Commander.js是一个非常流行的模块,可以让您创建自己的CLI程序。

首先,开始你的新项目 – 假设我的项目名称是“json-now”

$git clone https://github.com/yourname/json-now.git $cd json-now 

现在,创建你的package.json文件:

{   "name": "json-now",   "version": "0.0.1",   "bin": {     "json-now": "./bin/index.js"   },   "dependencies": {     "commander": "^3.0.1"   } } 

然后,安装依赖项:

$npm install 

“bin”部分指定您的命令行名称。如您所见,继续创建一个带有“index.js”文件的“bin”目录:

#!/usr/bin/env node  const program = require('commander'); const ver = require('../lib/ver'); program   .usage('(options) ')   .option('-v, --version', 'show version', ver, '')   .option('-p, --port ', 'use custom port')   .option('-f, --flag', 'boolean flag', false)   .action((file, options) => {     console.log('file name: ', file);     // more hanlder: require('../lib/moreHandler')(options);   })   .parse(process.argv); 

让我们创建第一个名为“-v”或“ – version”的选项,它显示版本号。在那里创建一个名为“lib”的目录和一个新文件“ver.js”:

const package = require('../package.json') module.exports = () => {     console.log(package.version); }; 

到目前为止,它看起来很直接。你创建了一个指挥官“程序”,它通过运行“ver.js”来处理像“-v”这样的选项

打开终端并尝试一下:

$node bin/index.js -v 0.0.1 $node bin/index.js sample.json file name: sample.json 

现在,是时候发布您的命令行供世界使用了

$npm login $npm publish  Try out your shiny new command: $npm install json-now -g $json-now -v 

以上代码位于此处供您参考:

https://github.com/ngduc/json-now

资讯来源:由0x资讯编译自DEV,原文:https://dev.to/ngduc/how-to-create-a-command-line-npm-module-cli-using-commander-js-ke4 ,版权归作者所有,未经许可,不得转载
你可能还喜欢