【AST 基础】AST 快速入门

依赖安装

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
    }
}
发表评论 / Comment

用心评论~