diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnImportedPackagesVersionResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnImportedPackagesVersionResolver.kt index 6f6abd73769..e92d5a3dbea 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnImportedPackagesVersionResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnImportedPackagesVersionResolver.kt @@ -33,11 +33,15 @@ class YarnImportedPackagesVersionResolver( resolve(externalModules, false) resolve(internalCompositeModules, true) - if (resolvedVersion.isNotEmpty()) { - npmProjects.forEach { - updatePackageJson(it.packageJson, it.npmProject.packageJsonFile) - } + npmProjects.forEach { + writePackageJson( + packageJson = it.packageJson, + path = it.npmProject.packageJsonFile, + forceWrite = true + ) + } + if (resolvedVersion.isNotEmpty()) { updatePackages(externalModules) updatePackages(internalCompositeModules) } @@ -74,16 +78,21 @@ class YarnImportedPackagesVersionResolver( Gson().fromJson(it, PackageJson::class.java) } - updatePackageJson(packageJson, packageJsonFile) + writePackageJson( + packageJson = packageJson, + path = packageJsonFile, + forceWrite = false + ) } } - private fun updatePackageJson( + private fun writePackageJson( packageJson: PackageJson, - path: File + path: File, + forceWrite: Boolean ) { val updates = listOf(packageJson.dependencies, packageJson.devDependencies).map { updateVersionsMap(it) } - if (updates.any { it }) { + if (forceWrite || updates.any { it }) { packageJson.saveTo(path) } }