From 4bf6e6d722f42e40183cce88a46a64c19aba550a Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 28 Oct 2021 13:34:20 +0300 Subject: [PATCH] [Gradle, JS] Use node_modules dir existence as marker of up-to-date ^KT-34014 fixed ^KT-49505 fixed --- .../kotlin-js-test-webpack-config/build.gradle.kts | 1 - .../targets/js/npm/tasks/KotlinNpmInstallTask.kt | 13 +++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-test-webpack-config/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-test-webpack-config/build.gradle.kts index b0ad3c6e8b5..628a4a71c99 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-test-webpack-config/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-test-webpack-config/build.gradle.kts @@ -20,7 +20,6 @@ kotlin { inputFileProperty.set(provider { compilation.npmProject.require("webpack/bin/webpack.js") }.map { RegularFile { File(it) } }) dependsOn("browserDevelopmentWebpack") val configFile = tasks.named("browserDevelopmentWebpack").map { it.configFile }.get() - configFile.parentFile.listFiles().forEach { println(it)} args("configtest") args(configFile.absolutePath) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt index 97c5f6286e2..ed073b2abbe 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt @@ -31,6 +31,19 @@ open class KotlinNpmInstallTask : DefaultTask() { @Input val args: MutableList = mutableListOf() + @get:Internal + val nodeModulesDir: File by lazy { + (nodeJs ?: unavailableValueError("nodeJs")) + .rootPackageDir + .resolve("node_modules") + } + + init { + outputs.upToDateWhen { + nodeModulesDir.isDirectory + } + } + @Suppress("unused") @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories