[Gradle, JS] Add task requirements only after evaluated
This commit is contained in:
+17
-13
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.dsl.kotlinExtensionOrNull
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
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.resolved.KotlinProjectNpmResolution
|
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinProjectNpmResolution
|
||||||
@@ -44,21 +45,24 @@ internal class KotlinProjectNpmResolver(
|
|||||||
init {
|
init {
|
||||||
addContainerListeners()
|
addContainerListeners()
|
||||||
|
|
||||||
val nodeJs = resolver.nodeJs
|
|
||||||
project.tasks.implementing(RequiresNpmDependencies::class)
|
project.whenEvaluated {
|
||||||
.configureEach { task ->
|
val nodeJs = resolver.nodeJs
|
||||||
if (task.enabled) {
|
project.tasks.implementing(RequiresNpmDependencies::class)
|
||||||
task as RequiresNpmDependencies
|
.configureEach { task ->
|
||||||
// KotlinJsTest delegates npm dependencies to testFramework,
|
if (task.enabled) {
|
||||||
// which can be defined after this configure action
|
task as RequiresNpmDependencies
|
||||||
val packageJsonTaskHolder = get(task.compilation).packageJsonTaskHolder
|
// KotlinJsTest delegates npm dependencies to testFramework,
|
||||||
if (task !is KotlinJsTest) {
|
// which can be defined after this configure action
|
||||||
nodeJs.taskRequirements.addTaskRequirements(task)
|
val packageJsonTaskHolder = get(task.compilation).packageJsonTaskHolder
|
||||||
|
if (task !is KotlinJsTest) {
|
||||||
|
nodeJs.taskRequirements.addTaskRequirements(task)
|
||||||
|
}
|
||||||
|
task.dependsOn(packageJsonTaskHolder)
|
||||||
|
task.dependsOn(nodeJs.npmInstallTask)
|
||||||
}
|
}
|
||||||
task.dependsOn(packageJsonTaskHolder)
|
|
||||||
task.dependsOn(nodeJs.npmInstallTask)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addContainerListeners() {
|
private fun addContainerListeners() {
|
||||||
|
|||||||
Reference in New Issue
Block a user