创建项目目录与项目文件时会出现很多重复性的工作,例如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…