发现不管是写前端(vue,react,angular)还是后端(egg,thinkphp,laravel)这种mvvm和mvc的框架,封装的越深,写起来越繁琐,特别是写管理后台的时候(ant desgin pro),模块化导致封装了很多层(接口的url层、ajax层、router、 model、view)每次添加都要文件一个个找,添加这么多层,而且基本上有50%以上的代码是重复的,一些常规的页面,除了接口和字段,别的都是一样的。直到我用到了angular 和 laravel,它们有命令行生成工具,但是对于已有的项目,再去搭建自己的脚手架不太合适,而且生成的代码不够全面,我就想自己也定制自己的生成代码的脚本来解决这个痛点,生成好之后基本改下字段就可以完事了

生成接口URL层代码

URL层原始代码 config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const APIV1 = '/api/v1';

module.exports = {
name: '管理后台',
logo: '/logo.png',
openPages: ['/login'],
apiPrefix: '/api/v1',
APIV1,
api: {
// 商品管理
classificationItem: `${APIV1}/classification`,
classificationBrand: `${APIV1}/brand`,
classificationSeries: `${APIV1}/brandseries`,
classificationGoods: `${APIV1}/productClassification`,
classificationProperty: `${APIV1}/attributeController`,
classificationCommodity: `${APIV1}/productController`,
},
};

1.思路

1.通过node 的bash交互,用户输入要生成的模块的名称,
2.在该文件下面自动加入代码(倒数第二个}前面),
如下:

1
用户输入的模块名: `${APIV1}/用户输入的模块名`,

2.实现

1.在项目根目录下创建如下文件:

—cli
  -config.text    //源文件,把里面的代码插入到config.js
  -index.js       //node文件