From f064634eb0cedb1b9103057a55cafd7890c06194 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 21 May 2020 15:53:41 +0300 Subject: [PATCH] [Gradle, JS] Backport possibility to disable granular workspaces --- .../targets/js/yarn/YarnRootExtension.kt | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnRootExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnRootExtension.kt index d7dbdb71383..c59444ab90b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnRootExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnRootExtension.kt @@ -1,14 +1,17 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.gradle.targets.js.yarn +import org.gradle.api.Incubating import org.gradle.api.Project +import org.gradle.api.tasks.TaskProvider import org.jetbrains.kotlin.gradle.internal.ConfigurationPhaseAware import org.jetbrains.kotlin.gradle.logging.kotlinInfo import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin +import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask import org.jetbrains.kotlin.gradle.tasks.internal.CleanableStore open class YarnRootExtension(val project: Project) : ConfigurationPhaseAware() { @@ -33,6 +36,21 @@ open class YarnRootExtension(val project: Project) : ConfigurationPhaseAware + get() = project.tasks + .withType(RootPackageJsonTask::class.java) + .named(RootPackageJsonTask.NAME) + + @Incubating + fun disableGranularWorkspaces() { + val packageJsonUmbrella = NodeJsRootPlugin.apply(project) + .packageJsonUmbrellaTaskProvider + + rootPackageJsonTaskProvider.configure { + it.dependsOn(packageJsonUmbrella) + } + } + override fun finalizeConfiguration(): YarnEnv { val cleanableStore = CleanableStore[installationDir.path]