创建项目目录与项目文件时会出现很多重复性的工作,例如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缓存功能,这个函数会触发 }复制代码
根据配置页面的目录结构,生成项目目录结构,根据每个文件的文件类型,模板等生成相应的文件模块
github.com/fodelf/crea…