[Gradle, JS] Fix set npmResolutionManager inside YarnPlugin
This commit is contained in:
committed by
Space Team
parent
b2f416dbbe
commit
065b00c3d7
+12
-2
@@ -7,12 +7,14 @@ package org.jetbrains.kotlin.gradle.targets.js.yarn
|
||||
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||
import org.jetbrains.kotlin.gradle.targets.js.MultiplePluginDeclarationDetector
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNpmResolutionManager
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.KotlinNpmResolutionManager
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.implementing
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
|
||||
@@ -22,6 +24,7 @@ import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask.Companion.ST
|
||||
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask.Companion.UPGRADE_YARN_LOCK
|
||||
import org.jetbrains.kotlin.gradle.tasks.CleanDataTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
import org.jetbrains.kotlin.gradle.utils.providerWithLazyConvention
|
||||
|
||||
open class YarnPlugin : Plugin<Project> {
|
||||
override fun apply(project: Project): Unit = project.run {
|
||||
@@ -46,13 +49,20 @@ open class YarnPlugin : Plugin<Project> {
|
||||
}
|
||||
}
|
||||
|
||||
val objectFactory = project.objects
|
||||
|
||||
val rootPackageJson = tasks.register(RootPackageJsonTask.NAME, RootPackageJsonTask::class.java) { task ->
|
||||
task.dependsOn(nodeJsTaskProviders.npmCachesSetupTaskProvider)
|
||||
task.group = NodeJsRootPlugin.TASKS_GROUP_NAME
|
||||
task.description = "Create root package.json"
|
||||
|
||||
task.npmResolutionManager.apply {
|
||||
set(project.kotlinNpmResolutionManager)
|
||||
// npmResolutionManager is initialised inside NodeJsRootPlugin after YarnPlugin applied
|
||||
set(
|
||||
objectFactory.providerWithLazyConvention {
|
||||
project.kotlinNpmResolutionManager.get()
|
||||
}
|
||||
)
|
||||
disallowChanges()
|
||||
}
|
||||
|
||||
@@ -83,7 +93,7 @@ open class YarnPlugin : Plugin<Project> {
|
||||
it.dependsOn(packageJsonUmbrella)
|
||||
}
|
||||
|
||||
val storeYarnLock = tasks.register(STORE_YARN_LOCK_NAME, YarnLockStoreTask::class.java) { task ->
|
||||
tasks.register(STORE_YARN_LOCK_NAME, YarnLockStoreTask::class.java) { task ->
|
||||
task.dependsOn(kotlinNpmInstall)
|
||||
task.inputFile.set(nodeJs.rootPackageDir.resolve("yarn.lock"))
|
||||
task.outputDirectory.set(yarnRootExtension.lockFileDirectory)
|
||||
|
||||
Reference in New Issue
Block a user