JavaScript 死代码剔除工具

最终更新: 2025/02/06

Kotlin Multiplatform Gradle 插件包含一个 死代码剔除(Dead Code Elimination) (DCE) 工具. 死代码剔除通常又被称为 摇树(Tree Shaking). 它可以删除未被使用的属性, 函数, 以及类, 减少最终编译输出结果的 JavaScript 代码大小.

有几种情况可以导致代码中存在未被使用的声明:

  • 函数可能会被内联, 因此不会被直接调用 (除极少数情况外, 总是会如此).

  • 模块使用了一个共享库. 如果没有 DCE, 库中没有被用到的部分仍然会包含在编译输出的 bundle 之内. 比如, Kotlin 标准库包含了许多函数, 用于操作列表, 数组, 字符序列, 用于 DOM 的适配器, 等等. 所有这些功能输出为 JavaScript 文件总计需要 1.3 MB. 而一个简单的 "Hello, world" 应用程序只需要控制台相关函数, 整个文件只有几 KB.

构建 产品版(production) bundle 时, Kotlin Multiplatform Gradle 插件会自动处理 DCE, 比如, 使用 browserProductionWebpack 任务. 开发版(development) bundle 的构建任务(比如 browserDevelopmentWebpack) 不会包含 DCE.