前端命令行工具 & 脚手架- commander

1,540 阅读2分钟

commander 的核心功能是解析命令行参数,并提供一系列简便的api。像vue init xxx,实现的初始化方式。

实现自定义命令基本步骤:

1、创建一个package.json(npm init -y),在里头定义bin字段,指定执行的文件:

"bin": {
    "xx": "./bin/xx.js"
}

要想在命令行中运行此命令,需创建关联到全局环境的软连接(symlink) npm link

2、在项目根目录下执行,创建软连接。

npm link // 方法1
npm install . -g // 方法2

3、在bin/xx.js 的第一行必须添加#!/usr/bin/env node ,指名用node来作为脚本的解释程序

案例如下:

#!/usr/bin/env node

const program = require('commander');
const packageJson = require('../package.json')
const chalk = require('chalk')

program
  .version(packageJson.version || 'unknown', '-v, --version')
  .option("-t, --test", "option test")
  .parse(process.argv);
console.log(chalk.red('自定义指令~'))
if (program.test) console.log(chalk.green("commander option test测试通过~"));

可以设置option 来进行业务处理,然后.parse(process.argv)必须要有。

实现一个全局webpack4多页打包命令 - zz

只有想办法取到terminal 的打包指令和文件名称,然后输入到webpack 的entry处即可。
工程详见github.

插件(npm 包):

  • commander 一个帮助快速开发Nodejs命令行工具的package。能轻松的获取命令行的参数

  • inquirer 命令行交互工具,“问答”交互形式

  • download-git-repo git仓库下载工具,通常用来下载模板代码

  • chalk 命令行输入/输出美化工具,终端输出时颜色样式输出工具

  • minimist 轻量级命令行参数解析引擎, 用于命令参数的提取

  • liftoff 对命令窗口|命令格式化

  • ora 终端loading 美化工具

  • handlebars 模板引擎

通常实现的功能:

  • 一条简单的命令初始化项目
  • 提供友好的交互体验
  • 可选择安装不同模板
  • 自动安装项目依赖

commander

onebyone前端脚手架开发入门