[Gradle, JS] Not rewrite package.json if json was not changed

This commit is contained in:
Ilya Goncharov
2021-06-10 15:31:33 +03:00
committed by TeamCityServer
parent 6219eb24c0
commit e3c291db27
3 changed files with 12 additions and 8 deletions
@@ -5,12 +5,8 @@
package org.jetbrains.kotlin.gradle.targets.js.npm package org.jetbrains.kotlin.gradle.targets.js.npm
import com.google.gson.ExclusionStrategy import com.google.gson.*
import com.google.gson.FieldAttributes
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import org.gradle.api.GradleException import org.gradle.api.GradleException
import org.gradle.api.tasks.Input
import org.jetbrains.kotlin.gradle.internal.ensureParentDirsCreated import org.jetbrains.kotlin.gradle.internal.ensureParentDirsCreated
import java.io.File import java.io.File
import java.io.Serializable import java.io.Serializable
@@ -109,13 +105,21 @@ class PackageJson(
packageJsonFile.ensureParentDirsCreated() packageJsonFile.ensureParentDirsCreated()
val jsonTree = gson.toJsonTree(this) val jsonTree = gson.toJsonTree(this)
val previous = if (packageJsonFile.exists()) {
packageJsonFile.reader().use {
JsonParser.parseReader(it)
}
} else null
customFields customFields
.forEach { (key, value) -> .forEach { (key, value) ->
val valueElement = gson.toJsonTree(value) val valueElement = gson.toJsonTree(value)
jsonTree.asJsonObject.add(key, valueElement) jsonTree.asJsonObject.add(key, valueElement)
} }
packageJsonFile.writer().use { if (jsonTree != previous) {
gson.toJson(jsonTree, it) packageJsonFile.writer().use {
gson.toJson(jsonTree, it)
}
} }
} }
} }
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.gradle.targets.js.yarn package org.jetbrains.kotlin.gradle.targets.js.yarn
import com.google.gson.Gson import com.google.gson.Gson
import org.gradle.api.Project
import org.gradle.api.logging.Logger import org.gradle.api.logging.Logger
import org.jetbrains.kotlin.gradle.targets.js.npm.GradleNodeModule import org.jetbrains.kotlin.gradle.targets.js.npm.GradleNodeModule
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.targets.js.yarn package org.jetbrains.kotlin.gradle.targets.js.yarn
import com.google.gson.Gson
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.logging.Logger import org.gradle.api.logging.Logger
import org.gradle.internal.service.ServiceRegistry import org.gradle.internal.service.ServiceRegistry