千家信息网

如何理解前端的自动化重构

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容主要讲解"如何理解前端的自动化重构",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何理解前端的自动化重构"吧!过去,我一直想着抽时间写一个小的前端
千家信息网最后更新 2026年11月04日如何理解前端的自动化重构

本篇内容主要讲解"如何理解前端的自动化重构",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何理解前端的自动化重构"吧!

过去,我一直想着抽时间写一个小的前端工具,以对代码进行自动化的重构。但是呢,经过我再三的考虑,我暂时取消了这个打算 —— 主要是没时间。(PS:人生长乐,写个 Charj) 但是呢,我打算写一篇文章记录一下相关的思路。

原因依据很多:

  1. 大部分国内的公司使用的都是 Vue,template、script、style 都耦合在一起;

  2. 大量的前端项目都是轻逻辑,不具有复杂的业务场景

  3. 前端系统被重写的频率太快了

  4. JavaSript 语法太灵活,而 TypeScript 还未普及

  5. ……

简单来说,在缺乏复杂场景的情况下,我不太想去写这样的工具。

如何构建前端自动化重构工具?

在我之前写的那篇『重构的自动化』中,介绍了如何去做这样的工具:

  1. 构建特定语言的语法解析器。

  2. 设定代码坏味道的内容及标准。

  3. 针对于每一项坏味道,编写识别代码。

  4. 编写代码坏味道的建议改进和实施代码。

  5. 实现坏味道的自动化重构。

以 Vue 为例,这个过程便是:

  1. 寻找适用于 Vue 的 AST 生成工具。如 eslint-vue-parser

  2. 寻找和编写适用于 Vue 编码的相关规范。

  3. 对应规范寻找代码中的问题。

  4. 针对该问题寻找改进点

  5. 实现自动化重构

让我们来看个简单的示例,如我们的代码规范中,针对于组件库强制规范了一定要写 scoped。而我们有大量的组件都没有相应的实践。这个时候,就可以通过这种方式来处理。分析中代码中不带 scoped 的 style,然后自动添加:

添加的模式其实也比较简单:

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. 解析后,AST 将带有标签等等的位置信息。

  3. 针对所有相关类型的文件进行识别,记录所需要重构的相关信息。file、 location、 changed、 length。

  4. 反向遍历所有的待修改处,读取对应的文件,对应的位置,进行修改。

  5. 保存文件。

  6. 再次运行。

嗯,就是这么简单。

配套工具

根据我先前的一些调研,我整理了一些相关的资料,欢迎大家去玩。

JavaScript

如果只是针对于简单的 JavaScript 重构来说,我们可以考虑使用 jscodeshift 这一类的工具。jscodeshift 是一个工具包,用于在多个 JavaScript 或TypeScript 文件上运行 codemods(自动代码修改)。

当然了,如果你不嫌麻烦的话,还可以使用类似的工具:

SourceEsprima 4.0.1UglifyJS2TraceurAcorn 8.0.4ShiftShift (no early errors)
jQuery.Mobile 1.4.2149.6 ±1.8%170.7 ±1.2%178.2 ±6.0%214.4 ±13.0%429.5 ±13.5%203.9 ±9.6%
Angular 1.2.5125.0 ±2.8%138.2 ±2.9%134.5 ±2.3%113.8 ±2.8%251.5 ±1.3%147.1 ±1.5%
React 0.13.3127.2 ±1.0%158.2 ±1.4%160.0 ±0.8%128.5 ±2.8%310.8 ±2.7%182.6 ±2.7%
Total401.8 ms467.0 ms472.7 ms456.7 ms991.9 ms533.5 ms

嗯,原理都是相似的。

TypeScript

官方提供了 AST 解析。

从我的之前写的前端架构守护工具:https://github.com/phodal/dilay,你就可以看到相似的代码。

CSS

针对于 CSS 重构来说,相似的工具有:https://github.com/csstree/csstree

不过,我们建议你们使用 Lemonj(使用 Antlr 进行语法树解析):https://github.com/twfe/lemonj

框架特定

针对于 Angular,官方提供了 Angular Schematics,除了自动代码修改,还可以做各种自动化升级工作。

针对于 Vue,官方也有类似的工具:https://github.com/vuejs/vue-codemod

针对于 React,官方也有工具:https://github.com/reactjs/react-codemod

结合 CLI 工具

当我们修改完代码之后,下一步要做的事情就是修改文件,这里推荐一下: schematics-utilities,虽然是 Angular 上下游的工具,但是它不限于框架。

有了这个工具,我们就可以快速修改代码,如:

recorder = tree.beginUpdate(path);  recorder .remove(start, length) .insertLeft(start, value);  tree.commitUpdate(recorder);

这些都大同小异,没有什么特别之处。

到此,相信大家对"如何理解前端的自动化重构"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

工具 代码 重构 自动化 前端 官方 文件 味道 相似 内容 语法 复杂 位置 信息 场景 就是 建议 时间 框架 组件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 什么是科技互联网 湖北九亚互联网络科技有限公司 云之行互联网科技 高科技互联网 A股互联网金融科技公司 互联网下的科技发展 深圳国际航运科技和互联网 互联网科技实习生岗位职责 互联网科技中介 昭通云南众福互联网科技有限公司 重庆互联网医院沙龙医盟信息科技 花神(南京)互联网科技有限公司 阿大互联网科技有限公司 西安小鹰速贷互联网科技有限公司 华夏恒生科技与互联网科技 互联网科技如何创业 江苏苏星互联网科技有限公司 互联网大会出现的黑科技 株洲百竞科技的互联网营销顾问 有马互联网科技 唐信互联网科技 极限挑战互联网科技 狮子座互联网科技有限公司 互联网前沿科技 银川新华互联网科技职业技术培训学校图片 亳州好赞互联网科技有限公司 工业互联网展湾科技股份有限公司 众安科技工业互联网合作 互联网科技创业有什么好项目
0