Kotlin Gradle多平台项目无法生成Node.js产物问题排查
Kotlin React SSR Node.js 构建配置问题解决
你的配置缺少产物输出到dist目录的分发配置,同时依赖声明顺序需要调整以确保版本一致性,以下是修正后的配置和说明:
修正后的 build.gradle.kts
plugins { kotlin("multiplatform") } repositories { mavenCentral() } val kotlinWrappersVersion: String = "1.0.0-pre.736" kotlin { js { nodejs() binaries.executable() // 添加分发配置,指定输出目录为build/dist distributions { main { distributionDirectory.set(layout.buildDirectory.dir("dist")) } } } sourceSets { jsMain.dependencies { // 先声明强制版本BOM,确保所有wrapper依赖版本统一 implementation(project.dependencies.enforcedPlatform("org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:$kotlinWrappersVersion")) implementation("org.jetbrains.kotlin-wrappers:kotlin-react") implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom") } } }
关键修改点
- 添加
distributions配置块:明确指定将可执行产物输出到build/dist目录,这是Kotlin JS Node.js目标生成可分发包的必要配置 - 调整依赖顺序:将
enforcedPlatform放在最前面,确保所有Kotlin wrapper依赖的版本被BOM统一管控,避免版本冲突
正确构建命令
执行以下命令替代build,确保触发分发包生成:
./gradlew renderBrowserApp:installDist
执行完成后,renderBrowserApp/build/dist目录会生成包含编译后JS文件、依赖包的完整可执行环境,你可以直接在该目录下运行node main.js测试SSR输出。
内容的提问来源于stack exchange,提问作者mdornfe1
相关产品推荐
相关产品推荐

