AST操作之API用法-node节点

This commit is contained in:
aiyingfeng 2023-07-17 20:52:16 +08:00
parent e6a72aae27
commit c1afbed128
3 changed files with 23 additions and 0 deletions

View File

@ -0,0 +1 @@
var a = 123;

View File

@ -0,0 +1,21 @@
const fs = require('fs');
const { parse } = require('@babel/parser');
const traverse = require('@babel/traverse').default;
const generator = require('@babel/generator').default;
let encode_file = './encode.js';
let js_code = fs.readFileSync(encode_file, { encoding: 'utf-8' });
let ast = parse(js_code, {
sourceType: 'module',
});
traverse(ast, {
NumericLiteral(path) {
path.replaceWith(
parse(3).program.body[0].expression
);
},
});
const output = generator(ast).code;
console.log(output);

View File

@ -0,0 +1 @@
var a = 123;