从Ktor服务Kotlin多平台javascript

时间:2019-08-14 15:19:16

标签: gradle kotlin ktor kotlin-multiplatform

我已经建立了一个带有公共模块和ktor模块的多模块gradle项目。

常用模块是kotlin跨平台库。

当我从Intellij运行它时,我希望能够提供从ktor服务器从公共库生成的javascript文件。

目前,ktor已设置为将资源作为静态内容提供:

    static("/static") {
        resources()
    }

ktor模块依赖于公共模块:

dependencies {
    compile project(':common')
    ...
}

我认为在Intellij中运行时,能够浏览到http://localhost:8080/static/common.js来检索通用模块JS构建的输出(写到common \ build \ classes \ kotlin \ js \ main),但这不是工作。

1 个答案:

答案 0 :(得分:2)

通过包括复制任务来解决此问题。请注意,此处(https://github.com/ktorio/ktor-samples/tree/master/mpp/fullstack-mpp)的kotlin全栈mpp有使用Webpack输出的示例。

kotlin {
    jvm() {
        task copyJsToJvm(type: Copy) {
            from("$buildDir/classes/kotlin/js/main")
            include '*.*'
            into "$buildDir/classes/kotlin/jvm/main"
        }
        compilations.main {
            tasks.getByName(processResourcesTaskName) {
                dependsOn(copyJsToJvm)
            }
        }
    }
...
}