You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用Gradle,通过kotlinc-js将Kotlin文件编译为Node可运行的JS

Kotlin/JS 原生 kotlinc-js 编译运行Node端代码解决方案

问题根源

你遇到的kotlin模块未找到报错,核心原因是kotlinc-js默认不会将Kotlin/JS标准库打包到输出的JS文件中,JVM编译器常用的-include-runtime参数在JS编译器下不支持,仅指定-libraries参数只会让编译器在编译阶段做类型校验和符号解析,不会把运行时代码嵌入输出文件。

解决方法

有两种常用方案可选,根据你的使用场景选择即可:

方案1:单文件打包(无额外依赖,适合分发)

直接通过编译器实验参数将标准库打包到输出的单个JS文件中,编译后可直接用Node运行,不需要安装任何npm依赖。
Makefile编写规则如下:

build-js:
	kotlinc-js main.kt \
	-output main.kt.js \
	-module-kind commonjs \
	-main call \
	-Xinclude-runtime

编译完成后直接执行:
node main.kt.js
即可正常输出Bye JS。

方案2:单独引入标准库(适合开发阶段)

如果不需要单文件分发,可以通过npm安装对应版本的Kotlin/JS标准库供Node加载:

  1. 首先查询本地kotlinc-js版本,确保npm安装的标准库版本完全一致,避免兼容性问题:
    kotlinc-js -version
  2. 项目目录下初始化npm项目并安装对应版本的kotlin包:
npm init -y
npm install kotlin@<你的编译器版本号>
  1. 用常规命令编译代码:
build-js:
	kotlinc-js main.kt \
	-output main.kt.js \
	-module-kind commonjs \
	-main call \
	-libraries $KOTLIN_HOME/lib/kotlin-stdlib-js.jar

注:将$KOTLIN_HOME替换为你本地Kotlin的安装路径,默认SDKMAN安装路径为~/.sdkman/candidates/kotlin/current,brew安装路径为/usr/local/Cellar/kotlin/<版本号>,Windows为安装目录根路径。

  1. 编译完成后直接运行即可:
    node main.kt.js

内容的提问来源于stack exchange,提问作者Some random IT boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:24:03