[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.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.provider.Provider
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
import org.jetbrains.kotlin.gradle.utils.markResolvable
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.MultiplePluginDeclarationDetector
|
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
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
|
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.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.RequiresNpmDependencies
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.implementing
|
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.implementing
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
|
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.targets.js.yarn.YarnLockCopyTask.Companion.UPGRADE_YARN_LOCK
|
||||||
import org.jetbrains.kotlin.gradle.tasks.CleanDataTask
|
import org.jetbrains.kotlin.gradle.tasks.CleanDataTask
|
||||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.providerWithLazyConvention
|
||||||
|
|
||||||
open class YarnPlugin : Plugin<Project> {
|
open class YarnPlugin : Plugin<Project> {
|
||||||
override fun apply(project: Project): Unit = project.run {
|
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 ->
|
val rootPackageJson = tasks.register(RootPackageJsonTask.NAME, RootPackageJsonTask::class.java) { task ->
|
||||||
task.dependsOn(nodeJsTaskProviders.npmCachesSetupTaskProvider)
|
task.dependsOn(nodeJsTaskProviders.npmCachesSetupTaskProvider)
|
||||||
task.group = NodeJsRootPlugin.TASKS_GROUP_NAME
|
task.group = NodeJsRootPlugin.TASKS_GROUP_NAME
|
||||||
task.description = "Create root package.json"
|
task.description = "Create root package.json"
|
||||||
|
|
||||||
task.npmResolutionManager.apply {
|
task.npmResolutionManager.apply {
|
||||||
set(project.kotlinNpmResolutionManager)
|
// npmResolutionManager is initialised inside NodeJsRootPlugin after YarnPlugin applied
|
||||||
|
set(
|
||||||
|
objectFactory.providerWithLazyConvention {
|
||||||
|
project.kotlinNpmResolutionManager.get()
|
||||||
|
}
|
||||||
|
)
|
||||||
disallowChanges()
|
disallowChanges()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +93,7 @@ open class YarnPlugin : Plugin<Project> {
|
|||||||
it.dependsOn(packageJsonUmbrella)
|
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.dependsOn(kotlinNpmInstall)
|
||||||
task.inputFile.set(nodeJs.rootPackageDir.resolve("yarn.lock"))
|
task.inputFile.set(nodeJs.rootPackageDir.resolve("yarn.lock"))
|
||||||
task.outputDirectory.set(yarnRootExtension.lockFileDirectory)
|
task.outputDirectory.set(yarnRootExtension.lockFileDirectory)
|
||||||
|
|||||||
Reference in New Issue
Block a user