diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt index 0d021a83d21..af25ecce5ad 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt @@ -15,7 +15,8 @@ import java.io.File abstract class YarnBasics : NpmApi { - private val resolvedDependencies = mutableMapOf>() + private val nonTransitiveResolvedDependencies = mutableMapOf>() + private val transitiveResolvedDependencies = mutableMapOf>() override fun setup(project: Project) { YarnPlugin.apply(project).executeSetup() @@ -45,7 +46,11 @@ abstract class YarnBasics : NpmApi { dependency: NpmDependency, transitive: Boolean ): Set { - val files = resolvedDependencies[dependency] + val files = (if (transitive) { + transitiveResolvedDependencies + } else { + nonTransitiveResolvedDependencies + })[dependency] if (files != null) { return files @@ -70,6 +75,8 @@ abstract class YarnBasics : NpmApi { } } + nonTransitiveResolvedDependencies[dependency] = all + if (transitive) { dependency.dependencies.forEach { resolveDependency( @@ -80,10 +87,9 @@ abstract class YarnBasics : NpmApi { all.addAll(files) } } + transitiveResolvedDependencies[dependency] = all } - resolvedDependencies[dependency] = all - return all }