commander脚手架工具使用详解

目录
  • 概述
  • 下载
  • 预备工作
  • 核心重要的选项
    • option
    • command
  • 总结

概述

在当前我们前端项目中,大多数情况下,都是使用对应框架开发的脚手架进行项目工程化的搭建,既然要用到脚手架,那么肯定会用到命令,比如vue-cli的创建命令:vue create projectName,要想解析控制台输出的自定义命令,离不开commander这个工具。

commander负责将参数解析为选项和命令参数。记录一期这个工具的基本使用。

下载

npm install commander

预备工作

  • 第一步: 首先需要控制台能解析识别我们自定的命令,像vue-cli,他的命令是vue,我们这里假设自定义gnip,因此,需要给js文件加上这句话
#!/usr/bin/env node
//下面正常的node代码,比如我们需要配置的命令
console.log('自定义命令执行了")
  • 第二步: 在package.json文件中,新加bin配置项
{
  "name": "gnip-cli",
  "version": "1.0.4",
  "description": "gnip-cli",
  "main": "index.js",
  //这里将我们全局需要执行的命令放到这里,当我们npm下载时候,会自动加到环境变量中(然后你就可以通过 gnip xxx使用你的命令了)
  "bin": {
    "gnip": "./index.js"
  },
  "scripts": {},
  "keywords": [
    "cli"
  ],
  "author": "gnip",
  "license": "ISC",
  "devDependencies": {
    "commander": "^9.4.0",
    "download-git-repo": "^3.0.2"
  },
  "dependencies": {
    "ejs": "^3.1.8",
    "inquirer": "^7.3.3"
  },
  "files": [
    "node_modules",
    "lib",
    "*"
  ]
}
  • 第三步: 执行npm link,将当前项目映射到全局,在其他目录下我们就可以使用gnip这个全局命令了

核心重要的选项

option

这个方法可以使我们执行类似于gnip -g haha 等的带参数的命令时,可以解析注意点:

  • 一个-是简写,--的是全称
  • 这种尖角括号代表必填参数(后面不跟参数会提示少参数)
//index.js
const program = require("commander");
  program
  //-g表示参数,比如:gnip -g,第二个参数为当前选项描述后面可以不接参数
    .option("-g", "a gnip cli")
    //-d是简写,--dest 是全称,<dest>标书参数名,必填,因此你的命令可以是 gnip -d 哈哈或者gnip --dest 哈哈
    .option("-d, --dest <dest>", "a destion folder,例如:-d /src/components")
    //同上
    .option("-f, --framework <framework>", "your framework,such as vue react")
    //链式调用解析参数
    .parse();
  // 监听option对象的变化,做出回应
  const options = program.opts();//获取配置参数对象
  if (options.g) {
    console.log("a gnip cli");
  } else if (options.dest) {
    console.log("a destion folder,例如:-d /src/components");
  } else if (options.framework) {
    console.log("your framework,such as vue react");
  }

command

用来注册命令和对应的回调逻辑,比如我想执行和vue cli一样的create命令,可以这样gnip create projectName

    const program = require("commander");
       // 创建工程项目,例如:gnip create demon01
    program
        .command("create <projectName>")
        .description("clone a repository from remote")
        .action(()=>{
        //当用户通过 gnip create demon01回车的时候就会执行这个回调,这里你可以读写文件,下载项目模板,克隆远程仓库,下载包等等
        })

总结

其实上面两个方法就足够我们自己写一个自动化脚本命令了,甚至是一个自定义的脚手架,脚手架搭建还可以配合其他的工具,后面再介绍,更多commander的用法,可以看文档,内容很多,我这里只记录了常用的,后面陆续更新inquirerejs,download-git-repo的搭配使用,更多关于commander脚手架工具的资料请关注我们其它相关文章!

(0)

相关推荐

  • Vue脚手架搭建及创建Vue项目流程的详细教程

    目录 VUE脚手架搭建流程 安装国内淘宝镜像 安装 Vue 脚手架 Vue项目创建 项目结构解读 项目修改测试 总结 VUE脚手架搭建流程 1.安装 Node.js(推荐一个网站:http://nodejs.cn/) 2.下载安装完成之后进行测试,记住安装位置 node -v 测试 node 是否安装成功以及检查 node 版本 npm -v 测试 npm 是否安装成功以及检查 npm 版本 效果: 提示:如果碰到下面情况 可能原因: 可能是C:\Users\Administrator(user

  • jenkins中如何集成commander应用的完整步骤

    前言 Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建.测试和部署等功能. 最近参加公司的集成测试平台的开发,在开发中遇到了不少问题,两个星期的迭代也即将完成,在这也用这篇博客记录下开发中的问题,供读者参考 公司的应用较多,所以需要了解这几种应用在jenkins中如何做构建,我自己参与的有两种commander的应用,一种是大数据类的,一个是我们服务端架构组的scala应用 1.大数据应用BigData 配置如下: 配

  • VUE脚手架框架编写简洁的登录界面的实现

    目录 前言 安装Vue脚手架 创建登录界面的文件--login.Vue 配置路由-- router.js 配置main.js 编写登录界面--Login.Vue 总结 前言 一个好的前端开发项目,都是一个团队负责一个部分进行通力合作的.简单的一个系统网站一般包含登录.主体.各个模块功能这三个大部分,现在我们写的登录界面,我们一般编写这样的登录界面可以说有一定的固定套路. 安装Vue脚手架 1.我们一Windows 10为例子,安装Vue 3脚手架前,我们先要配置node js环境: 2.接下来,

  • nodejs命令行参数处理模块commander使用实例

    诚然,之前处理都是使用内置的process.agrv ,这个能work,但是不好使,于是tj大神给写了一个,my god,完全的高大上: 1.安装 复制代码 代码如下: npm install commander 2.option 解析 Options with commander are defined with the .option() method, also serving as documentation for the options. The example below pars

  • node实现shell命令管理工具及commander.js学习

    目录 背景. 一.用法演示 1: 安装 2: 添加 3: 查看 + 使用' 4: 移除 5: add有变量的命令 6: 使用变量 二.初始化自己的node项目 三.初始化命令 + 全局安装 四.commander.js (node命令行解决方案) 番外 五.inquirer.js(node命令行交互插件) 六.添加命令: add 七.移除命令: rm 八.查看+使用: ls 1: 查看ls, 支持传参 -a 2: 判断命令语句中是否有变量 3: 无变量 -> 执行 4: 有变量 -> 执行 九

  • 从零搭建SpringBoot+MyBatisPlus快速开发脚手架

    目录 前言 聊聊mall-tiny项目 项目简介 项目演示 技术选型 数据库表结构 接口文档 使用流程 升级过程 Swagger升级 Spring Security升级 MyBatis-Plus升级 解决循环依赖问题 解决跨域问题 总结 前言 关注我Github的小伙伴应该了解,之前我开源了一款快速开发脚手架mall-tiny,该脚手架继承了mall项目的技术栈,拥有完整的权限管理功能.最近抽空把该项目支持了Spring Boot 2.7.0,今天再和大家聊聊这个脚手架,同时聊聊升级项目到Spr

  • commander脚手架工具使用详解

    目录 概述 下载 预备工作 核心重要的选项 option command 总结 概述 在当前我们前端项目中,大多数情况下,都是使用对应框架开发的脚手架进行项目工程化的搭建,既然要用到脚手架,那么肯定会用到命令,比如vue-cli的创建命令:vue create projectName,要想解析控制台输出的自定义命令,离不开commander这个工具. commander负责将参数解析为选项和命令参数.记录一期这个工具的基本使用. 下载 npm install commander 预备工作 第一步

  • Java 爬虫工具Jsoup详解

    Java 爬虫工具Jsoup详解 Jsoup是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址.HTML 文本内容.它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据. jsoup 的主要功能如下: 1. 从一个 URL,文件或字符串中解析 HTML: 2. 使用 DOM 或 CSS 选择器来查找.取出数据: 3. 可操作 HTML 元素.属性.文本: jsoup 是基于 MIT 协议发布的,可放心使用于商业项目. js

  • PHP调试及性能分析工具Xdebug详解

    程序开发过程中,一般用得最多的调试方法就是用echo.print_r().var_dump().printf()等将语句打印出来.对PHP脚本的执行效率,通常是脚本执行时间.对数据库SQL的效率,通常是数据库Query时间,但这样并不能真正定位和分析脚本执行和数据库查询的瓶颈所在?对此,有一个叫Xdebug(www.xdebug.org)的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况. 一.以windows平台对此模块的安装做简单的介绍: 1. 下载PH

  • linux 随机密码生成工具mkpasswd详解及实例

    linux 随机密码生成工具mkpasswd详解及实例 mkpasswd命令生成随机复杂密码,前提安装expect,然后执行mkpasswd命令即可生成随机的密码. 一.基本的命令安装 安装expect: -l # (密码的长度定义, 默认是 9) -d # (数字个数, 默认是 2) -c # (小写字符, 默认是 3) -C # (大写字符, 默认是 2) -s # (特殊字符, 默认是 1) -v (详细...) -p prog (程序设置密码, 默认是 passwd) 详细参数,用如下命

  • Bootstrap 响应式实用工具实例详解

    Bootstrap 提供了一些辅助类,以便更快地实现对移动设备友好的开发.这些可以通过媒体查询结合大型.小型和中型设备,实现内容对设备的显示和隐藏. 需要谨慎使用这些工具,避免在同一个站点创建完全不同的版本.响应式实用工具目前只适用于块和表切换. 实例 下面的实例演示了上面所列举的帮助器类的用法.调整浏览器的窗口大小,或者在不同的设备上加载实例,测试响应式实用工具类. <div class="container" style="padding: 40px;"&

  • 微信小程序 常用工具类详解及实例

    微信小程序 常用工具类详解 前言: 做微信小程序当中,会遇到好多的工具类util.js,这里记载下来以便平常使用 (Ps:建议通过目录查看) -获取日期(格式化) function formatTime(date) { var year = date.getFullYear() var month = date.getMonth() + 1 var day = date.getDate() var hour = date.getHours() var minute = date.getMinut

  • python实现微信跳一跳辅助工具步骤详解

    说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1.windows上安装python2.7,配置好环境变量和pip 2.到这个网站下载对应版本的pyHook和pywin32 http://www.lfd.uci.edu/~gohlke/pythonlibs 2.打开cmd,安装下载好的whl文件和其他库 pip install pywin32-221

  • Ubuntu 17.10安装phpMyAdmin数据库管理工具配置详解

    和Windows下各种双击安装直接使用的数据库管理工具不同,Linux下的数据库管理工具显得有些稍稍复杂.由于版权和收费限制,很多好用的数据库管理工具例如Data Grip和Navicat不能直接在Linux的包管理器中安装使用.不过仍然有一些好用的DBMS,phpmyadmin就是其中之一. 安装LAMP LAMP是Linux.Apache.MySql(MariaDB).PHP(Python.Perl)等软件的合称.我们现在要在Ubuntu16.04上安装,因此只需要安装其他三个软件就可以了.

  • js时间戳转yyyy-MM-dd HH-mm-ss工具类详解

    在web开发中,我们经常需要用js将时间戳转yyyy-MM-dd HH-mm-ss类似的格式,这样才适合我们的观感,那么我们该如何在js中将时间戳转换成这种格式呢?其实很简单,我们开发一个时间戳工具类,如下: 第一种:最简单的是一个js时间格式的转换函数方法 function formatDateTime(inputTime) { var date = new Date(inputTime); var y = date.getFullYear(); var m = date.getMonth()

  • C# 数据库链接字符串加密解密工具代码详解

    有些项目尤其是WinForm或者是WPF项目,针对一些工具形式的小项目,不想软件流出去之后,懂程序的的拿到手之后一看配置文件就知道了我们数据库的用户名和密码,如果外网能访问的话,那就麻烦大了.所以这里为了防止项目外泄之后这些信息不被别人看到,我们就需要对链接字符串或者其他重要信息进行加密,用的时候在解密. 思路:使用两个数对连接字符串进行加密,再用这两个数进行解密. <add key="ConfigString" value="4HsXBRNXTkeN0ZoKdEwFE

随机推荐