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 命令,床架项目









