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 acbe6f7fc57..2a316c6ac85 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 @@ -108,7 +108,11 @@ internal class KotlinCompilationNpmResolver( fun getResolutionOrResolveIfForced(): KotlinCompilationNpmResolution? { if (resolution != null) return resolution if (packageJsonTaskHolder.get().state.upToDate) return resolve(skipWriting = true) - if (resolver.forceFullResolve && resolution == null) return resolve() + if (resolver.forceFullResolve && resolution == null) { + // need to force all NPM tasks to be configured in IDEA import + project.tasks.implementing(RequiresNpmDependencies::class).all {} + return resolve() + } return null } @@ -284,7 +288,7 @@ internal class KotlinCompilationNpmResolver( internalDependencies.map { it.npmProject.name }, internalCompositeDependencies.flatMap { it.getPackages() }, externalGradleDependencies.map { it.artifact.file }, - externalNpmDependencies.map { "${it.scope} ${it.key}:${it.version}" } + externalNpmDependencies.map { it.uniqueRepresentation() } ) fun createPackageJson(skipWriting: Boolean): KotlinCompilationNpmResolution { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinProjectNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinProjectNpmResolver.kt index 8deac7cb171..988ec2ed82e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinProjectNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinProjectNpmResolver.kt @@ -121,6 +121,6 @@ internal class KotlinProjectNpmResolver( * * TODO properly express within the type system? The result should be a TaskCollection */ -private fun TaskCollection.implementing(kclass: KClass): TaskCollection = +internal fun TaskCollection.implementing(kclass: KClass): TaskCollection = @Suppress("UNCHECKED_CAST") withType(kclass.java as Class) \ No newline at end of file