I have set up a multi-module gradle project with a common module and a ktor module.
The common module is a kotlin multiplatform library.
I would like to be able to serve the javascript files generated from the common library from the ktor server, when I run it from Intellij.
Currently ktor is set up to serve resources as static content:
    static("/static") {
        resources()
    }
The ktor module has a dependency on the common module:
dependencies {
    compile project(':common')
    ...
}
I would assume when running in Intellij to be able to browse to http://localhost:8080/static/common.js to retrieve the outputs of the common module JS build (written to common\build\classes\kotlin\js\main) but this does not work.
Fixed this by including a copy task. Note that the kotlin full stack mpp here (https://github.com/ktorio/ktor-samples/tree/master/mpp/fullstack-mpp) has an example that uses webpack outputs.
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)
            }
        }
    }
...
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With