使用 IR 编译器

最终更新: 2025/02/06

Kotlin/JS IR 编译器后端是 Kotlin/JS 的主要创新方向, 并为以后的技术发展探索道路.

Kotlin/JS IR 编译器后端不是从 Kotlin 源代码直接生成 JavaScript 代码, 而是使用一种新方案. Kotlin 源代码首先转换为 Kotlin 中间代码(intermediate representation, IR), 然后再编译为 JavaScript. 对于 Kotlin/JS, 这种方案可以实现更加积极的优化, 并能够改进以前的编译器中出现的许多重要问题, 比如, 生成的代码大小(通过死代码清除), 以及 JavaScript 和 TypeScript 生态环境的交互能力, 等等.

从 Kotlin 1.4.0 开始, 可以通过 Kotlin Multiplatform Gradle 插件使用 IR 编译器后端. 要在你的项目中启用它, 需要在你的 Gradle 构建脚本中, 向 js 函数传递一个编译器类型参数:

  • IR 对 Kotlin/JS 使用新的 IR 编译器后端.

  • LEGACY 使用旧的编译器后端.

  • BOTH 编译项目时使用新的 IR 编译器以及默认的编译器后端. 主要用于 编写同时兼容于两种后端的库.

编译器类型也可以在 gradle.properties 文件中通过 kotlin.js.compiler=ir 来设置. 但是这个设置会被 build.gradle(.kts) 中的任何设置覆盖.