Gradle, js: rename objects to avoid clashing with moowork nodejs plugin
#KT-31834 Fixed
This commit is contained in:
+18
-10
@@ -4,7 +4,7 @@ import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.tasks.Delete
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.Companion.NODE_JS
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.Companion.EXTENSION_NAME
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolveTask
|
||||
|
||||
open class NodeJsPlugin : Plugin<Project> {
|
||||
@@ -13,31 +13,37 @@ open class NodeJsPlugin : Plugin<Project> {
|
||||
"NodeJsPlugin can be applied only to root project"
|
||||
}
|
||||
|
||||
this.extensions.create(NODE_JS, NodeJsRootExtension::class.java, this)
|
||||
this.extensions.create(EXTENSION_NAME, NodeJsRootExtension::class.java, this)
|
||||
|
||||
val setupTask = tasks.create(NodeJsSetupTask.NAME, NodeJsSetupTask::class.java)
|
||||
val npmResolveTask = tasks.create(NpmResolveTask.NAME, NpmResolveTask::class.java)
|
||||
npmResolveTask.outputs.upToDateWhen { false }
|
||||
val setupTask = tasks.create(NodeJsSetupTask.NAME, NodeJsSetupTask::class.java) {
|
||||
it.group = TASKS_GROUP_NAME
|
||||
it.description = "Download and install a local node/npm version"
|
||||
}
|
||||
|
||||
npmResolveTask.dependsOn(setupTask)
|
||||
tasks.create(NpmResolveTask.NAME, NpmResolveTask::class.java) {
|
||||
it.dependsOn(setupTask)
|
||||
it.outputs.upToDateWhen { false }
|
||||
it.group = TASKS_GROUP_NAME
|
||||
it.description = "Find, download and link NPM dependencies and projects"
|
||||
}
|
||||
|
||||
setupCleanNodeModulesTask(project)
|
||||
|
||||
allprojects {
|
||||
if (it != project) {
|
||||
it.extensions.create(NODE_JS, NodeJsExtension::class.java, this)
|
||||
it.extensions.create(EXTENSION_NAME, NodeJsExtension::class.java, this)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupCleanNodeModulesTask(project: Project) {
|
||||
project.tasks.create("cleanNodeModules", Delete::class.java) {
|
||||
project.tasks.create("cleanKotlinNodeModules", Delete::class.java) {
|
||||
it.description = "Deletes nodeJs projects created during build"
|
||||
it.group = BasePlugin.BUILD_GROUP
|
||||
it.delete.add(project.nodeJs.root.rootPackageDir)
|
||||
}
|
||||
|
||||
project.tasks.create("cleanGradleNodeModules", Delete::class.java) {
|
||||
project.tasks.create("cleanKotlinGradleNodeModules", Delete::class.java) {
|
||||
it.description = "Deletes node modules imported from gradle external modules"
|
||||
it.group = BasePlugin.BUILD_GROUP
|
||||
it.delete.add(project.nodeJs.root.nodeModulesGradleCacheDir)
|
||||
@@ -45,10 +51,12 @@ open class NodeJsPlugin : Plugin<Project> {
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TASKS_GROUP_NAME: String = "nodeJs"
|
||||
|
||||
fun apply(project: Project): NodeJsExtension {
|
||||
val rootProject = project.rootProject
|
||||
rootProject.plugins.apply(NodeJsPlugin::class.java)
|
||||
return rootProject.extensions.getByName(NODE_JS) as NodeJsExtension
|
||||
return rootProject.extensions.getByName(EXTENSION_NAME) as NodeJsExtension
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ open class NodeJsRootExtension(project: Project) : NodeJsExtension(project) {
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val NODE_JS: String = "nodeJs"
|
||||
const val EXTENSION_NAME: String = "kotlinNodeJs"
|
||||
|
||||
operator fun get(project: Project) = NodeJsPlugin.apply(project.rootProject) as NodeJsRootExtension
|
||||
}
|
||||
|
||||
+1
-6
@@ -14,11 +14,6 @@ open class NodeJsSetupTask : DefaultTask() {
|
||||
private val settings = project.nodeJs.root
|
||||
private val env by lazy { settings.environment }
|
||||
|
||||
init {
|
||||
group = NodeJsRootExtension.NODE_JS
|
||||
description = "Download and install a local node/npm version."
|
||||
}
|
||||
|
||||
val ivyDependency: String
|
||||
@Input get() = env.ivyDependency
|
||||
|
||||
@@ -93,6 +88,6 @@ open class NodeJsSetupTask : DefaultTask() {
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val NAME: String = "nodeJsSetup"
|
||||
const val NAME: String = "kotlinNodeJsSetup"
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -15,6 +15,6 @@ open class NpmResolveTask : AbstractTask() {
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val NAME = "npmResolve"
|
||||
const val NAME = "kotlinNpmResolve"
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -44,7 +44,7 @@ open class YarnRootExtension(val project: Project) {
|
||||
)
|
||||
|
||||
companion object {
|
||||
const val YARN: String = "yarn"
|
||||
const val YARN: String = "kotlinYarn"
|
||||
|
||||
operator fun get(project: Project): YarnRootExtension {
|
||||
val rootProject = project.rootProject
|
||||
|
||||
+4
-4
@@ -9,7 +9,7 @@ import de.undercouch.gradle.tasks.download.DownloadAction
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.OutputDirectory
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsPlugin
|
||||
import java.io.File
|
||||
import javax.xml.ws.Action
|
||||
|
||||
@@ -26,8 +26,8 @@ open class YarnSetupTask : DefaultTask() {
|
||||
@OutputDirectory get() = env.home
|
||||
|
||||
init {
|
||||
group = NodeJsRootExtension.NODE_JS
|
||||
description = "Download and install a local yarn version."
|
||||
group = NodeJsPlugin.TASKS_GROUP_NAME
|
||||
description = "Download and install a local yarn version"
|
||||
|
||||
onlyIf {
|
||||
!settings.installationDir.exists()
|
||||
@@ -62,6 +62,6 @@ open class YarnSetupTask : DefaultTask() {
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val NAME: String = "yarnSetup"
|
||||
const val NAME: String = "kotlinYarnSetup"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user