如何通过命令行将Kotlin编译为WebAssembly?
命令行编译Kotlin到WebAssembly(无需IDEA/Gradle)
1. 准备工具与依赖
Kotlin 2.0+ 移除了旧的kotlinc-native wasm32编译目标,改用基于JS工具链的Wasm编译流程。首先要确保你使用的是Kotlin 2.0+ CLI工具包,而且Wasm标准库不会默认包含在CLI的lib目录中,需要单独获取。
2. 获取Wasm标准库
前往Maven中央仓库,搜索并下载对应Kotlin版本(比如2.0.20)的kotlin-stdlib-wasm.klib文件,将其保存到你方便访问的目录(比如当前编译目录)。
3. 执行编译命令
在命令行中运行以下命令,指定你的Kotlin源文件、输出的Wasm文件路径,以及下载好的标准库:
kotlinc-js input.kt -output lib.wasm -Xwasm -libraries ./kotlin-stdlib-wasm-2.0.20.klib
- 如果有多个Kotlin源文件,直接在命令后依次列出即可:
kotlinc-js file1.kt file2.kt ... - 新版编译流程无需添加
-Xir-produce-js参数,直接指定.wasm作为输出后缀即可。
4. 验证编译结果
编译完成后,当前目录会生成目标lib.wasm文件。你可以使用wasmtime等Wasm运行时工具测试运行,或者在浏览器中通过WebAssembly API加载并调用该文件。
额外说明
如果你的代码需要用到JS互操作相关的API,还需要下载对应版本的kotlin-stdlib-wasm-jsinterop.klib,并将其路径添加到-libraries参数中,多个库路径用逗号分隔。同时注意避免使用JVM专属的API,优先选用Kotlin标准库中支持Wasm的功能。
内容的提问来源于stack exchange,提问作者gouessej
相关产品推荐
相关产品推荐

