开发Node CLI构建微信小程序脚手架的示例

2020-06-17 08:02:04易采站长站整理
)
template
就放在当前目录中,直接`copy“, 之后的事等同

权衡之后,打算使用

lerna
作为管理工具, 其中模版也作为一个
npm 包
,用到的时候去
npm
下载,这么做我是为了方便管理,统一
push
/
publish
, 就是为了省事 :smile:。

最终思路:

暴露命令 —> 用户交互输入配置 -> 集合配置下载模版 -> 根据配置修改

.json
->
git init
+ 安装依赖

开发 Node CLI

Lerna 项目搭建

知道

monorepo
的同学不需要我多说,其实就是把代码放在一个仓库里,结果包之间回想以来,发布繁琐等问题, 这里我们就用到了
lerna
这个神器帮助我们做包的统一管理


// 创建项目
mkdir modoo-mini-program
cd modoo-mini-program

// 初始化
lerna init

cd packages
mkdir modoo-script
mkdir modoo-template-mini
mkdir modoo-mini // 安装 modoo-script 依赖用于测试,无其他实际用处

lerna bootstrap // 安装依赖 + npm link

安装依赖

为了实现功能,我们需要安装一些依赖包

commander 命令行工具,用于读取命令参数,作对应操作
node-fs-extra 在 Node.js 的 fs 基础上增加了一些新的方法,更好用,还可以拷贝模板。
chalk 可以用于控制终端输出字符串的样式, 调整颜色啥的
inquirer 用户命令行交互,获取用户的交互配置数据,就像个提问板
ora 实现加载中的状态是一个 Loading 加前面转起来的小圈圈,成功了是一个 Success 加前面一个小钩钩。
log-symbols 日志彩色符号,用来显示√ 或 × 等的图标

获取命令

首先第一步,要在用户全局安装之后,暴露出命令接口,需要在

packages.json
文件中加入如下内容


"bin": {
"modoo-script": "./bin/modoo-script.js"
},

之后在根目录下创建

bin
文件夹 +
bin/modoo-script.js


#!/usr/bin/env node
const { program } = require("commander");

program
.version(require("../package").version) // modoo-script --version
.usage("<command> [options]")
// init 命令,床架项目