代码压缩原理
可以在 AST Explorer (opens new window)中直观感受到,如下图:

babel,eslint,v8的逻辑均与此类似,下图是我们引用了babel的转化示意图:

# 代码压缩原理
- 将源代码转换为AST
- 将AST通过一定的规则进行优化,转换成更简洁的AS
- 将新生成的AST再转化成code
const uglify = require('uglify-js');
const sourceCode = `
function testFun() {
var a = 1;
var b = 2;
return a + b;
}
`;
const resultCode = uglify.minify(sourceCode);
console.log(resultCode.code); // function testFun(){return 3}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
压缩后的代码,因为变量已经有了明确的值,直接将两个变量声明的代码去掉了,函数直接返回了两个明确的值相加的结果。查看压缩规则 (opens new window)
编辑 (opens new window)
上次更新: 2025/07/20, 06:21:22