diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index 6b34df754f8..84deffce27b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -528,5 +528,14 @@ abstract class AbstractKotlin2JsGradlePluginIT(private val irBackend: Boolean) : assertFileExists("app/build/distributions/app.js") assertFileExists("app/build/distributions/app.js.map") } + + build("clean", "browserDistribution") { + assertTasksExecuted( + ":app:processResources", + ":app:browserDistribution" + ) + + assertFileExists("app/build/distributions/index.html") + } } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-browser-project/app/src/main/resources/index.html b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-browser-project/app/src/main/resources/index.html new file mode 100644 index 00000000000..9d24c155ddb --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-browser-project/app/src/main/resources/index.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file 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 d971f2192c8..967b21c873d 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 @@ -153,11 +153,15 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : val baseDist = project.buildDir.resolve(basePluginConvention!!.distsDirName) distribution.directory = distribution.directory ?: baseDist + val processResourcesTask = target.project.tasks.getByName(compilation.processResourcesTaskName) + val distributionTask = project.registerTask( disambiguateCamelCased( DISTRIBUTION_TASK_NAME ) ) { + it.dependsOn(processResourcesTask) + it.from(compilation.output.resourcesDir) it.into(distribution.directory ?: baseDist) } @@ -176,7 +180,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : ) { it.dependsOn( nodeJs.npmInstallTask, - target.project.tasks.getByName(compilation.processResourcesTaskName), + processResourcesTask, distributionTask )