Gradle, JS, NpmResolver: save imported packages cache state before calling npm

This commit is contained in:
Sergey Rostov
2019-05-31 10:53:26 +03:00
parent fdbee7a99a
commit 5b21c935a4
@@ -21,7 +21,7 @@ import java.nio.file.Files
* For external gradle modules, fake npm packages will be created and added to `package.json`
* as path to directory.
*/
internal class NpmResolver private constructor(val rootProject: Project) : AutoCloseable {
internal class NpmResolver private constructor(val rootProject: Project) {
companion object {
fun resolveIfNeeded(project: Project): ResolutionCallResult {
val rootProject = project.rootProject
@@ -93,14 +93,13 @@ internal class NpmResolver private constructor(val rootProject: Project) : AutoC
fun resolve() {
resolve(rootProject)
removeOutdatedPackages()
gradleNodeModules.close()
if (allNpmPackages.any { it.npmDependencies.isNotEmpty() }) {
packageManager.resolveRootProject(rootProject, allNpmPackages)
} else if (allNpmPackages.any { it.hasNodeModulesDependentTasks }) {
NpmSimpleLinker(rootProject).link(allNpmPackages)
}
close()
}
private fun removeOutdatedPackages() {
@@ -150,8 +149,4 @@ internal class NpmResolver private constructor(val rootProject: Project) : AutoC
fun chooseVersion(oldVersion: String?, newVersion: String): String =
oldVersion ?: newVersion // todo: real versions conflict resolution
override fun close() {
gradleNodeModules.close()
}
}