Gradle, JS, NpmResolver: save imported packages cache state before calling npm
This commit is contained in:
+2
-7
@@ -21,7 +21,7 @@ import java.nio.file.Files
|
|||||||
* For external gradle modules, fake npm packages will be created and added to `package.json`
|
* For external gradle modules, fake npm packages will be created and added to `package.json`
|
||||||
* as path to directory.
|
* as path to directory.
|
||||||
*/
|
*/
|
||||||
internal class NpmResolver private constructor(val rootProject: Project) : AutoCloseable {
|
internal class NpmResolver private constructor(val rootProject: Project) {
|
||||||
companion object {
|
companion object {
|
||||||
fun resolveIfNeeded(project: Project): ResolutionCallResult {
|
fun resolveIfNeeded(project: Project): ResolutionCallResult {
|
||||||
val rootProject = project.rootProject
|
val rootProject = project.rootProject
|
||||||
@@ -93,14 +93,13 @@ internal class NpmResolver private constructor(val rootProject: Project) : AutoC
|
|||||||
fun resolve() {
|
fun resolve() {
|
||||||
resolve(rootProject)
|
resolve(rootProject)
|
||||||
removeOutdatedPackages()
|
removeOutdatedPackages()
|
||||||
|
gradleNodeModules.close()
|
||||||
|
|
||||||
if (allNpmPackages.any { it.npmDependencies.isNotEmpty() }) {
|
if (allNpmPackages.any { it.npmDependencies.isNotEmpty() }) {
|
||||||
packageManager.resolveRootProject(rootProject, allNpmPackages)
|
packageManager.resolveRootProject(rootProject, allNpmPackages)
|
||||||
} else if (allNpmPackages.any { it.hasNodeModulesDependentTasks }) {
|
} else if (allNpmPackages.any { it.hasNodeModulesDependentTasks }) {
|
||||||
NpmSimpleLinker(rootProject).link(allNpmPackages)
|
NpmSimpleLinker(rootProject).link(allNpmPackages)
|
||||||
}
|
}
|
||||||
|
|
||||||
close()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun removeOutdatedPackages() {
|
private fun removeOutdatedPackages() {
|
||||||
@@ -150,8 +149,4 @@ internal class NpmResolver private constructor(val rootProject: Project) : AutoC
|
|||||||
|
|
||||||
fun chooseVersion(oldVersion: String?, newVersion: String): String =
|
fun chooseVersion(oldVersion: String?, newVersion: String): String =
|
||||||
oldVersion ?: newVersion // todo: real versions conflict resolution
|
oldVersion ?: newVersion // todo: real versions conflict resolution
|
||||||
|
|
||||||
override fun close() {
|
|
||||||
gradleNodeModules.close()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user