zoukankan      html  css  js  c++  java
  • 使用 commander && inquirer 构建专业的node cli

    备注:
      比较简单就是使用nodejs 的两个类库帮助我们进行开发而已,具体的使用参考类库文档
    1. 项目初始化
    a. 安装依赖
    yarn init -y 
    yarn add commander  inquirer 
    
    ├── README.md
    ├── bin
    │   └── index.js
    ├── package.json
    └── yarn.lock
    2. 项目代码
    a. package.json
    
    {
      "name": "mynode-cli",
      "version": "1.0.2",
      "main": "bin/index.js",
      "license": "MIT",
      "dependencies": {
        "commander": "^2.12.2",
        "inquirer": "^4.0.2"
      },
      "bin": {
        "mynode-cli":"bin/index.js"
      },
      "scripts": {
        "publish":"npm publish",
        "run-local":"node bin/index"
      }
    }
    
    b. bin/index.js
    
    备注:主要操作
    #!/usr/bin/env node
    
    const Program = require("commander");
    const Prompt = require("inquirer");
    const initQuestions = [{
        type: 'list',
        name: 'plattype',
        message: '请选择平台类型?',
        choices: [
            'pass',
            'sass',
            'iaas'
        ]
    },
    {
        type: 'list',
        name: 'vmCounts',
        message: '请选择您包含的虚拟机数量?',
        choices: ['100', '200', '500', '1000']
    }
    ];
    const loginQuestions = [{
        type: 'input',
        name: 'username',
        message: '请输入用户名',
    },
    {
        type: 'password',
        name: 'password',
        message: '请输入用户密码'
    }
    ];
    
    Program
        .version("0.1.0")
        .description("系统平台初始化工具")
        .option("-i, --init","平台初始化")
    
    Program
        .command("init")
        .alias("i")
        .description("初始化平台")
        .action(() => {
            Prompt.prompt(initQuestions).then(result => {
                console.log("您选择的平台类型信息如下:");
                console.log(JSON.stringify(result));
            })
        });
        Program
        .command("login")
        .alias("l")
        .description("登陆平台")
        .action(() => {
            Prompt.prompt(loginQuestions).then(result => {
                console.log("您登陆的账户信息如下:");
                console.log(JSON.stringify(result));
            })
        })
    Program.parse(process.argv);
    3. 使用
    a. 安装
    npm install -g mynode-cli
    b. 使用
    mynode-cli  -i init 
    mynode-cli -i login
    mynode-cli -h
    参考界面如下:
     
     
     
    4. 总结
    还是比较简单的,同时有一个npm 包create-new-cli也是一个不错的选择
    5.参考资料
    https://www.npmjs.com/package/commander
    https://www.npmjs.com/package/inquirer
    https://github.com/rongfengliang/mynode-cli
  • 相关阅读:
    java及前端请求跨域问题
    Node.js初级
    Oracle学习过程(随时更新)
    记录一下工作中犯的低级错误
    Maven管理项目架包
    使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
    position 定位属性
    一般处理程序 ashx 无法获取Session 值
    删除SQL SERVER 登录记录
    web.config 连接字符串 加密
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/8245016.html
Copyright © 2011-2022 走看看