我有带有任务kotlin2jscompileKotlin2Js插件。我这样配置:

val compileKotlin2Js: Kotlin2JsCompile by tasks
compileKotlin2Js.kotlinOptions {
    main = "call"
    outputFile = "${projectDir}/build/app.js"
}

现在,我想创建类似的任务,但要使用其他kotlinOptions。例如:
.kotlinOptions {
    main = "noCall"
    outputFile = "${projectDir}/build/lib.js"
}

怎么做?

更新:我也试图做这样的事情:
tasks.register<Kotlin2JsCompile>("myCompile2Js") {
    kotlinOptions {
        main = "noCall"
        outputFile = "${projectDir}/build/lib.js"
    }
}

但是会产生错误:
Execution failed for task ':myCompile2Js'.
> lateinit property destinationDirProvider has not been initialized

我也尝试指定destinationDir。错误消失了,但是这样的任务不会产生任何构建。

最佳答案

我还没有测试过,但是我相信可以通过以下方法解决问题:

tasks.register<Kotlin2JsCompile>("myCompile2Js") {
    kotlinOptions {
        main = "noCall"
        outputFile = "${projectDir}/build/lib.js"
    }
}

或者,如果您以后需要引用该任务:
val myCompile2Js by tasks.creating(Kotlin2JsCompile::class)
myCompile2Js.kotlinOptions {
    main = "noCall"
    outputFile = "${projectDir}/build/lib.js"
}

09-25 19:16