2

在 Kotlin 1.2.61 中,可以有从 kotlin-jvm 模块到 kotlin-js 模块的 Gradle 依赖项。

这对于将生成的 js 文件包含在独立的 jar 中以将它们用作静态资源很有用。

但是,从 Kotlin 1.2.70 开始,有一个限制阻止将依赖项从 kotlin-jvm 模块添加到 kotlin-js 模块,请参阅:问题

确保在 kotlin-jvm 模块之前构建 kotlin-js 模块的支持方法是什么,以便可以将 kotlin-js dist 文件包含在 kotlin-jvm 模块中(大概不添加它们之间的依赖关系) ?

4

1 回答 1

1

回答自己的问题,事实证明 Kotlin 前端插件已被弃用,支持的解决方案是使用 Multiplatform 插件。

我能够让它与 Kotlin Gradle DSL 一起使用,带有 Spring Boot 后端(包括能够从 IDE 调试)和 React 前端的热重载: https ://github.com/alexoooo/sample-多平台引导反应

proj-jvm build.gradle.kts 声明了对 proj-js 模块的依赖:

tasks.withType<ProcessResources> {
    val jsProject = project(":proj-js")
    val task = jsProject.tasks.getByName("browserProductionWebpack") as KotlinWebpack

    from(task.destinationDirectory!!) {
        into("public")
    }

    dependsOn(task)
}

请注意,Kotlin 多平台项目目前处于试验阶段,随着新 IR 的引入,一些细节可能会发生变化:https ://blog.jetbrains.com/kotlin/2020/03/kotlin-1-4-m1-released /

于 2020-04-15T14:28:19.807 回答