亮神知识库 亮神知识库
首页
  • 手写代码

    • 手写代码系列
  • 基础知识

    • 基础
    • JS底层
    • CSS
  • 原理
  • 浏览器
  • HTTP
  • 网络安全
  • babel
  • webpack基础
  • webpack进阶
  • Vite
  • TypeScript
  • Vue2
  • Vue3
  • Node基础

    • glob
    • 模块化机制
    • 事件循环
    • KOA2框架原理
    • Node子进程
    • cluster原理(了解)
  • 教育行业2021

    • B端
    • C端
    • 工具
  • 游戏行业2025
  • 刷题
  • 杂(待整理)
  • 学习
  • 面试
  • 实用技巧
  • 心情杂货
  • 年度总结
  • 友情链接
关于
  • 分类
  • 标签
  • 归档
  • 收藏
GitHub (opens new window)

亮神

前程明亮,未来可期
首页
  • 手写代码

    • 手写代码系列
  • 基础知识

    • 基础
    • JS底层
    • CSS
  • 原理
  • 浏览器
  • HTTP
  • 网络安全
  • babel
  • webpack基础
  • webpack进阶
  • Vite
  • TypeScript
  • Vue2
  • Vue3
  • Node基础

    • glob
    • 模块化机制
    • 事件循环
    • KOA2框架原理
    • Node子进程
    • cluster原理(了解)
  • 教育行业2021

    • B端
    • C端
    • 工具
  • 游戏行业2025
  • 刷题
  • 杂(待整理)
  • 学习
  • 面试
  • 实用技巧
  • 心情杂货
  • 年度总结
  • 友情链接
关于
  • 分类
  • 标签
  • 归档
  • 收藏
GitHub (opens new window)
  • babel

    • 摘要
    • Babel与Ts
    • 代码压缩原理
      • Babel原理
    • webpack基础

    • webpack深入

    • Vite

    • TypeScript

    • 打包工具
    • babel
    0zcl
    2021-12-18
    目录

    代码压缩原理

    可以在 AST Explorer (opens new window)中直观感受到,如下图:

    ast

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

    babel

    # 代码压缩原理

    1. 将源代码转换为AST
    2. 将AST通过一定的规则进行优化,转换成更简洁的AS
    3. 将新生成的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

    压缩后的代码,因为变量已经有了明确的值,直接将两个变量声明的代码去掉了,函数直接返回了两个明确的值相加的结果。查看压缩规则 (opens new window)

    参考: 浅谈JavaScript代码压缩 (opens new window)

    编辑 (opens new window)
    上次更新: 2025/07/20, 06:21:22
    Babel与Ts
    Babel原理

    ← Babel与Ts Babel原理→

    最近更新
    01
    2024年
    07-20
    02
    2023年
    07-20
    03
    2022年
    07-20
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 亮神 | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式