diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt index f9d3971f993..0c41a19c173 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt @@ -79,8 +79,6 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : val compileKotlinTask = compilation.compileKotlinTask - val dceOutputFileAppliers: MutableList Unit> = mutableListOf() - buildVariants.all { buildVariant -> val kind = buildVariant.kind val runTask = project.registerTask( @@ -109,9 +107,11 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : when (kind) { BuildVariantKind.PRODUCTION -> { - dceOutputFileAppliers.add { file -> - it.entry = file - } + // Breaking of Task Configuration Avoidance is not so critical + // because this task is dependent on DCE task + it.entry = dceTaskProvider.get() + .destinationDir + .resolve(compileKotlinTask.outputFile.name) it.resolveFromModulesFirst = true it.dependsOn(dceTaskProvider) } @@ -125,12 +125,6 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : } } - dceTaskProvider.configure { - dceOutputFileAppliers.forEach { dceOutputFileApplier -> - it.dceOutputFileApplier(it.destinationDir.resolve(compileKotlinTask.outputFile.name)) - } - } - if (kind == BuildVariantKind.DEVELOPMENT) { target.runTask.dependsOn(runTask) project.registerTask(disambiguateCamelCased(RUN_TASK_NAME)) { @@ -149,8 +143,6 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : val compileKotlinTask = compilation.compileKotlinTask - val dceOutputFileAppliers: MutableList Unit> = mutableListOf() - buildVariants.all { buildVariant -> val kind = buildVariant.kind val webpackTask = project.registerTask( @@ -171,9 +163,11 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : when (kind) { BuildVariantKind.PRODUCTION -> { - dceOutputFileAppliers.add { file -> - it.entry = file - } + // Breaking of Task Configuration Avoidance is not so critical + // because this task is dependent on DCE task + it.entry = dceTaskProvider.get() + .destinationDir + .resolve(compileKotlinTask.outputFile.name) it.resolveFromModulesFirst = true it.dependsOn(dceTaskProvider) } @@ -187,12 +181,6 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : } } - dceTaskProvider.configure { - dceOutputFileAppliers.forEach { dceOutputFileApplier -> - it.dceOutputFileApplier(it.destinationDir.resolve(compileKotlinTask.outputFile.name)) - } - } - if (kind == BuildVariantKind.PRODUCTION) { project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(webpackTask) project.registerTask(disambiguateCamelCased(WEBPACK_TASK_NAME)) {