From e3c291db27937b5d85d229a28b613d94f20cf30b Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 10 Jun 2021 15:31:33 +0300 Subject: [PATCH] [Gradle, JS] Not rewrite package.json if json was not changed --- .../gradle/targets/js/npm/PackageJson.kt | 18 +++++++++++------- .../YarnImportedPackagesVersionResolver.kt | 1 - .../gradle/targets/js/yarn/YarnWorkspaces.kt | 1 + 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PackageJson.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PackageJson.kt index 89b5ccca396..5e72b6d88b1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PackageJson.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PackageJson.kt @@ -5,12 +5,8 @@ package org.jetbrains.kotlin.gradle.targets.js.npm -import com.google.gson.ExclusionStrategy -import com.google.gson.FieldAttributes -import com.google.gson.Gson -import com.google.gson.GsonBuilder +import com.google.gson.* import org.gradle.api.GradleException -import org.gradle.api.tasks.Input import org.jetbrains.kotlin.gradle.internal.ensureParentDirsCreated import java.io.File import java.io.Serializable @@ -109,13 +105,21 @@ class PackageJson( packageJsonFile.ensureParentDirsCreated() val jsonTree = gson.toJsonTree(this) + val previous = if (packageJsonFile.exists()) { + packageJsonFile.reader().use { + JsonParser.parseReader(it) + } + } else null + customFields .forEach { (key, value) -> val valueElement = gson.toJsonTree(value) jsonTree.asJsonObject.add(key, valueElement) } - packageJsonFile.writer().use { - gson.toJson(jsonTree, it) + if (jsonTree != previous) { + packageJsonFile.writer().use { + gson.toJson(jsonTree, it) + } } } } 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 431c4f5c390..13ae3a7ab75 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 @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.gradle.targets.js.yarn import com.google.gson.Gson -import org.gradle.api.Project import org.gradle.api.logging.Logger import org.jetbrains.kotlin.gradle.targets.js.npm.GradleNodeModule import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnWorkspaces.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnWorkspaces.kt index cbb79fc0fac..d26053b96d2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnWorkspaces.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnWorkspaces.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.gradle.targets.js.yarn +import com.google.gson.Gson import org.gradle.api.Project import org.gradle.api.logging.Logger import org.gradle.internal.service.ServiceRegistry