GoGoCode 是什么?
GoGoCode 是一个基于 AST 的 JavaScript/Typescript/HTML 代码转换工具,但相较于同类,它提供了更符合直觉的 API
- 一套类 Jquery 的 API 用来查找和处理 AST
- 一套和正则表达式接近的语法用来匹配和替换代码
简介
让我们通过一个简单的例子来看看上述查找和修改代码的 API 是如何使用的
需要转换的代码
const a = 1; const b = 2;
通过 GoGoCode 来编写转换代码
const $ = require('gogocode'); const script = $(source); // 按照你的意图,用 $_$ 当通配符能匹配任意位置的 AST 节点 const aAssignment = script.find('const a = $_$'); // 获得我们匹配的 AST 节点的 value const aValue = aAssignment.match?.[0]?.[0]?.value; // 就像替换字符串一样去替换代码 // 但可以忽略空格、缩进或者换行的影响 script.replace('const b = $_$', `const b = ${aValue}`); // 把 ast 节点输出成字符串 const outCode = script.generate();
转换后代码
const a = 1; const b = 1;
在 Playground 尝试一下上面的 Demo
相关项目
项目 | 描述 |
---|---|
通过这个 gogocode 插件可以把 vue2 语法的项目转换成 vue3 的 | |
gogocode 的命令行工具 | |
可以在浏览器里尝试 gogocode 转换 | |
在 vscode 中通过此插件用 gogocode 重构你的代码 |
支持
- 钉钉群:34266233
- QQ群:735216094