依赖安装
npm install --save-dev @babel/core @babel/cli @babel/preset-env npm install --save @babel/polyfill
结构
操作思想:读取代码转换为AST -> 对节点进行 增删改查 操作 -> 保存结果
const fs = require('fs'); const parser = require("@babel/parser"); // 代码 解析为 AST const traverse = require("@babel/traverse").default; // 遍历节点 const type = require("@babel/types") // 节点类型判断 const generator = require("@babel/generator").default // AST 转换为 代码 const js_code = fs.readFileSync("./input", {encoding: "utf-8"}) let ast = parser.parse(js_code) // 代码转化为 ast // 相关操作 // ast 转化为 代码 let code = generator(ast).code // 保存 fs.writeFile("./output", code, (err => { }))
案例代码
let obj = { name: 'haha', add: function (a, b) { return a + b + 1000 }, mul: function (a, b) { return a * b + 1000 } }
版权声明:《 【AST 基础】AST 快速入门 》为明妃原创文章,转载请注明出处!
最后编辑:2022-4-9 09:04:48