diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/TasksRequirements.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/TasksRequirements.kt index 3e6cd45620c..531a2a5bdee 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/TasksRequirements.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/TasksRequirements.kt @@ -19,8 +19,8 @@ class TasksRequirements : Serializable { val byTask: Map> get() = _byTask - internal fun getCompilationNpmRequirements(compilationName: String): Set = - byCompilation[compilationName] + internal fun getCompilationNpmRequirements(projectPath: String, compilationName: String): Set = + byCompilation["$projectPath:$compilationName"] ?: setOf() fun addTaskRequirements(task: RequiresNpmDependencies) { @@ -34,11 +34,12 @@ class TasksRequirements : Serializable { .filterIsInstance() .toMutableSet() - val compilation = task.compilation.disambiguatedName - if (compilation in byCompilation) { - byCompilation[compilation]!!.addAll(requiredNpmDependencies.map { it.toDeclaration() }) + val projectPath = task.compilation.target.project.path + val compilationPath = "$projectPath:${task.compilation.disambiguatedName}" + if (compilationPath in byCompilation) { + byCompilation[compilationPath]!!.addAll(requiredNpmDependencies.map { it.toDeclaration() }) } else { - byCompilation[compilation] = requiredNpmDependencies.map { it.toDeclaration() }.toMutableSet() + byCompilation[compilationPath] = requiredNpmDependencies.map { it.toDeclaration() }.toMutableSet() } } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt index 81439e9e428..967d41436da 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt @@ -371,7 +371,8 @@ internal class KotlinCompilationNpmResolver( ) }, externalNpmDependencies.map { it.toDeclaration() }, - fileCollectionDependencies + fileCollectionDependencies, + projectPath ) } @@ -400,7 +401,8 @@ internal class KotlinCompilationNpmResolver( var internalCompositeDependencies: Collection, var externalGradleDependencies: Collection, var externalNpmDependencies: Collection, - var fileCollectionDependencies: Collection + var fileCollectionDependencies: Collection, + val projectPath: String ) : Serializable { private val projectPackagesDir by lazy { compilationResolver.nodeJs.projectPackagesDir } private val rootDir by lazy { compilationResolver.nodeJs.rootProject.rootDir } @@ -454,7 +456,7 @@ internal class KotlinCompilationNpmResolver( .filterNotNull() val toolsNpmDependencies = compilationResolver.rootResolver.nodeJs.taskRequirements - .getCompilationNpmRequirements(compilationResolver.compilationDisambiguatedName) + .getCompilationNpmRequirements(projectPath, compilationResolver.compilationDisambiguatedName) val dukatIfNecessary = if (externalNpmDependencies.any { it.generateExternals }) { setOf( diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt index 2946f97cc20..6aee976c81f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt @@ -68,7 +68,7 @@ open class KotlinPackageJsonTask : DefaultTask() { @get:Input internal val toolsNpmDependencies: List by lazy { nodeJs.taskRequirements - .getCompilationNpmRequirements(compilationDisambiguatedName) + .getCompilationNpmRequirements(projectPath, compilationDisambiguatedName) .map { it.toString() } }