[Gradle, JS] Use property for webpack entry
This commit is contained in:
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* 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.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ internal class KotlinProjectNpmResolver(
|
|||||||
byCompilation[compilation] ?: listOf()
|
byCompilation[compilation] ?: listOf()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
projectNpmResolver.project.tasks.implementing(RequiresNpmDependencies::class).forEach { task ->
|
projectNpmResolver.project.tasks.implementing(RequiresNpmDependencies::class).configureEach { task ->
|
||||||
if (task.enabled) {
|
if (task.enabled) {
|
||||||
addTaskRequirements(task as RequiresNpmDependencies)
|
addTaskRequirements(task as RequiresNpmDependencies)
|
||||||
task.dependsOn(projectNpmResolver[task.compilation].packageJsonTaskHolder)
|
task.dependsOn(projectNpmResolver[task.compilation].packageJsonTaskHolder)
|
||||||
|
|||||||
+12
-14
@@ -132,13 +132,12 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
KotlinJsBinaryType.DEVELOPMENT -> devDceTaskProvider
|
KotlinJsBinaryType.DEVELOPMENT -> devDceTaskProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
// Breaking of Task Configuration Avoidance is not so critical
|
it.entryProperty.set(
|
||||||
// because this task is dependent on DCE task
|
actualDceTaskProvider.map {
|
||||||
it.entry = actualDceTaskProvider.get()
|
it.destinationDir
|
||||||
.destinationDir
|
.resolve(compileKotlinTask.outputFile.name)
|
||||||
.resolve(compileKotlinTask.outputFile.name)
|
}
|
||||||
|
)
|
||||||
it.dependsOn(actualDceTaskProvider)
|
|
||||||
|
|
||||||
it.resolveFromModulesFirst = true
|
it.resolveFromModulesFirst = true
|
||||||
|
|
||||||
@@ -208,13 +207,12 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
KotlinJsBinaryType.DEVELOPMENT -> devDceTaskProvider
|
KotlinJsBinaryType.DEVELOPMENT -> devDceTaskProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
// Breaking of Task Configuration Avoidance is not so critical
|
it.entryProperty.set(
|
||||||
// because this task is dependent on DCE task
|
actualDceTaskProvider.map {
|
||||||
it.entry = actualDceTaskProvider.get()
|
it.destinationDir
|
||||||
.destinationDir
|
.resolve(compileKotlinTask.outputFile.name)
|
||||||
.resolve(compileKotlinTask.outputFile.name)
|
}
|
||||||
|
)
|
||||||
it.dependsOn(actualDceTaskProvider)
|
|
||||||
|
|
||||||
commonWebpackConfigurations.forEach { configure ->
|
commonWebpackConfigurations.forEach { configure ->
|
||||||
it.configure()
|
it.configure()
|
||||||
|
|||||||
+10
-1
@@ -10,6 +10,7 @@ import org.gradle.api.Incubating
|
|||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.internal.file.FileResolver
|
import org.gradle.api.internal.file.FileResolver
|
||||||
import org.gradle.api.plugins.BasePluginConvention
|
import org.gradle.api.plugins.BasePluginConvention
|
||||||
|
import org.gradle.api.provider.Property
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.gradle.deployment.internal.Deployment
|
import org.gradle.deployment.internal.Deployment
|
||||||
import org.gradle.deployment.internal.DeploymentHandle
|
import org.gradle.deployment.internal.DeploymentHandle
|
||||||
@@ -24,6 +25,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.reportsDir
|
import org.jetbrains.kotlin.gradle.testing.internal.reportsDir
|
||||||
import org.jetbrains.kotlin.gradle.utils.injected
|
import org.jetbrains.kotlin.gradle.utils.injected
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.newProperty
|
||||||
import org.jetbrains.kotlin.gradle.utils.property
|
import org.jetbrains.kotlin.gradle.utils.property
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -53,9 +55,16 @@ open class KotlinWebpack : DefaultTask(), RequiresNpmDependencies {
|
|||||||
@Input
|
@Input
|
||||||
var mode: Mode = Mode.DEVELOPMENT
|
var mode: Mode = Mode.DEVELOPMENT
|
||||||
|
|
||||||
|
@get:Internal
|
||||||
|
var entry: File
|
||||||
|
get() = entryProperty.get()
|
||||||
|
set(value) {
|
||||||
|
entryProperty.set(value)
|
||||||
|
}
|
||||||
|
|
||||||
@get:PathSensitive(PathSensitivity.ABSOLUTE)
|
@get:PathSensitive(PathSensitivity.ABSOLUTE)
|
||||||
@get:InputFile
|
@get:InputFile
|
||||||
var entry: File by property {
|
val entryProperty: Property<File> = project.newProperty {
|
||||||
compilation.compileKotlinTask.outputFile
|
compilation.compileKotlinTask.outputFile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user