背景
在大部分后台业务系统中都是增删改查的Table页面,但是基于综合考虑,不采用低代码等配置化的模式,还是每个页面进行独立的代码开发,这样更能长期可靠的维护性,和稳定性。
但是同样存在几个痛点:
- 虽然每个页面具有很多相似的功能,无论是复制一个全部全部功能的模版,还是部分功能的模版,都需要手动增加或者删除代码。
- 表格字段很多,并且很多是图片,手动输入和修改,不仅耗时而且容易打错,而且不同
table columns类型往往需要配置不同的format形式。
可行性方案
既然目的是为了通过配置来生成初始化的代码,解决的问题就是创建模版的时候只需要我们想要的功能,以及动态生成的table columns 的配置等
- 通过自定义编辑插件,根据原型和需求,通过一套配置来生成所需要的代码
- 并且通过截图来初始化
table的Colunms配置 - 有一定的智能判断, 给不同的字段默认覆不同的渲染函数
- 拥有二次编辑能力,可以手动修改配置
- 根据配置,和模版文件,生成页面,生成路由
技术设计
- 通过
vscde插件Api注册插件,并且配置触发条件 - 通过
Webview可以开发复杂的配置界面 - 通过
node.js可以处理文件流
核心代码
-
只有通过打开
Webview的形式才可进行比较复杂的配置编辑,所以Webview和VsCode的通信比较重要,双向通信通过postMessage API -
VsCode打开
Webview并且向Webview发送消息 -
Webview向 插件发送消息
- 根据读区到的配置进行文件处理,复制文件,正则匹配修改文件内容,等等
打包发布
打包
- 清空
dist - 打包
Webview到dist - 再拷贝模版到
dist - 打包插件到
dist
npm run build:webview && npm run check-types && npm run lint && node esbuild.js --production
发布
- 注册账号并创建 Azure DevOps 组织
- 获取
Personal Access Token - 修改
pacakge.json中的namedisplayNamedescriptionpublisherversioniconrepository等配置 - 修改
README.mdCHANGELOG.md - 安装
vsce - 登录
vsce并发布插件
参考文档
vscode 插件开发:
webview 相关:
- Antd: ant-design.antgroup.com/index-cn
- Andt ProComponents: procomponents.ant.design/
- Vite: cn.vite.dev/
node 相关: