171 - 《grandpa 方案》

发布于 2022年8月19日

有兴趣参与的同学请联系我,可以在搭完架子后参与一部分工作,长期有空余时间的优先。

背景

某次直播写 dva 3 时想到的点,由于重新搭建 dva 3,我需要重头开始处理 package.json、prettier、tsconfig、eslint、test、打包工具、发布脚本等。这种重复劳动怎么能重复消耗人力呢?于是就想着写个工具自动做这件事。

这和现有的很多脚手架有啥区别?1)原子化,都是重头搭建,脚手架是一下子搭建好,可能会有些东西不是你需要的,2)可扩展,可以补充你自己的原子化能力,3)可回退,添加 prettier 不想要?再执行下工具删除就好。

这和 umi g 或者 modern.js 的「微生成器」的功能比较像,我希望重新设计后,使之成为 umi g 和 father g 的内核。名字待定,不一定叫 grandpa,发现好多人对这类词比较敏感,比如 father,不少人就是拒绝这个名字的。

实现

先给原子级的生成器一个名字,就叫「generator」吧。然后我理解主要做三件事,1)generator 的定义,2)generator 的查询 3)generator 的执行。

generator 的定义感觉 4 个属性就够,name、check、enable、disable。name 用于交互式的展示和选择,check 用于检查当前 generator 是否执行过,enable 和 disable 用于启用和回退。

比如,

export default defineGenerator({
  name,
  enab

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。