转载

项目效率-模板生成

需求背景

创建项目目录与项目文件时会出现很多重复性的工作,例如java根据表字段生成实体类,这些都有现成的工具。除此之外,不仅仅是java,甚至于其他开发文件,js,ts甚至于vue文件都有不少重复的工作。当然很多ide已经帮我们解决了不少问题,例如用vscode就可以自定义模板然后生成模板里面的内容。尚未解决的两个痛点,第一目录层级控制,第二动态数据插入(数据可以来自于接口,数据库,自定义的模板)

实现效果

模板一

public class Result {
  <% _.forEach(tests, function(test) { %> private <%- test.type %>  <%- test.name %>;
  <% }); %> 
}复制代码

生成

public class Result {
  private String name;
  private long id;
}复制代码

模板二

export default {
  name: 'componentName',
  //import引入的组件需要注入到对象中才能使用
  components: {},
  data() {
    //这里存放数据
    return {}
  },
  //监听属性 类似于data概念
  computed: {},
  //监控data中的数据变化
  watch: {},
  //方法集合
  methods: {},
  //生命周期 - 创建完成(可以访问当前this实例)
  created() {},
  //生命周期 - 挂载完成(可以访问DOM元素)
  mounted() {},
  beforeCreate() {}, //生命周期 - 创建之前
  beforeMount() {}, //生命周期 - 挂载之前
  beforeUpdate() {}, //生命周期 - 更新之前
  updated() {}, //生命周期 - 更新之后
  beforeDestroy() {}, //生命周期 - 销毁之前
  destroyed() {}, //生命周期 - 销毁完成
  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
}
复制代码

生成(替换某个字符串)

export default {
  name: 'myComponent',
  //import引入的组件需要注入到对象中才能使用
  components: {},
  data() {
    //这里存放数据
    return {}
  },
  //监听属性 类似于data概念
  computed: {},
  //监控data中的数据变化
  watch: {},
  //方法集合
  methods: {},
  //生命周期 - 创建完成(可以访问当前this实例)
  created() {},
  //生命周期 - 挂载完成(可以访问DOM元素)
  mounted() {},
  beforeCreate() {}, //生命周期 - 创建之前
  beforeMount() {}, //生命周期 - 挂载之前
  beforeUpdate() {}, //生命周期 - 更新之前
  updated() {}, //生命周期 - 更新之后
  beforeDestroy() {}, //生命周期 - 销毁之前
  destroyed() {}, //生命周期 - 销毁完成
  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
}复制代码

场景

根据配置页面的目录结构,生成项目目录结构,根据每个文件的文件类型,模板等生成相应的文件模块

项目效率-模板生成

技术栈

  1. nodejs(lodash中的template)
  2. vue(elemnt)
  3. 数据库?

git地址(项目起步)

github.com/fodelf/crea…

原文  https://juejin.im/post/5dca0449f265da4d114013b1
正文到此结束
Loading...