【问题标题】:Reference kotlin-js resources from kotlin-jvm in Kotlin 1.3 multiplatform gradle project在 Kotlin 1.3 多平台 gradle 项目中参考来自 kotlin-jvm 的 kotlin-js 资源
【发布时间】:2019-05-04 08:33:47
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: kotlin-multiplatform


    【解决方案1】:

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

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

    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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-05
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      • 2021-12-27
      • 2020-12-02
      相关资源
      最近更新 更多