diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt index e32b472ab6d..5f65a1391a2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.js.yarn import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.plugins.BasePlugin +import org.jetbrains.kotlin.gradle.plugin.whenEvaluated import org.jetbrains.kotlin.gradle.targets.js.MultiplePluginDeclarationDetector import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies @@ -66,7 +67,16 @@ open class YarnPlugin : Plugin { project.allprojects .forEach { - it.tasks.implementing(RequiresNpmDependencies::class).all {} + val fn: (Project) -> Unit = { + it.tasks.implementing(RequiresNpmDependencies::class).all {} + } + if (it.state.executed) { + fn(it) + } else { + it.afterEvaluate { + fn(it) + } + } } val storeYarnLock = tasks.register("kotlinStoreYarnLock") {