From e2aafd5512c408bf1b9472b4d15e70daf4e8ba36 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Tue, 14 May 2019 11:27:42 +0300 Subject: [PATCH] Gradle, js, node: fix source map support configuration #KT-30573 Fixed --- .../targets/js/subtargets/KotlinNodeJs.kt | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt index 233f5becad4..905c02da56d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.gradle.targets.js.subtargets +import org.gradle.api.Project +import org.jetbrains.kotlin.gradle.plugin.TaskHolder import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl @@ -26,29 +28,37 @@ class KotlinNodeJs(target: KotlinJsTarget) : } override fun configureRun(compilation: KotlinJsCompilation) { - // source maps support - compilation.dependencies { - runtimeOnly(kotlin("test-nodejs-runner")) - } - val project = target.project - project.createOrRegisterTask(disambiguateCamelCased("run")) { runTask -> + val runTaskHolder = project.createOrRegisterTask(disambiguateCamelCased("run")) { runTask -> val compileKotlinTask = compilation.compileKotlinTask runTask.dependsOn(target.npmResolveTaskHolder.getTaskOrProvider(), compileKotlinTask) val npmProject = project.npmProject runTask.args(npmProject.compileOutput(compileKotlinTask)) - target.npmResolveTaskHolder.doGetTask().doLast { - // source maps support + target.runTask.dependsOn(runTask) + } + + addSourceMapSupport(compilation, runTaskHolder, project) + } + + private fun addSourceMapSupport( + compilation: KotlinJsCompilation, + runTaskHolder: TaskHolder, + project: Project + ) { + compilation.dependencies { + runtimeOnly(kotlin("test-nodejs-runner")) + } + + target.npmResolveTaskHolder.doGetTask().doLast { + runTaskHolder.configure { runTask -> runTask.args( "--require", - npmProject.require("kotlin-test-nodejs-runner/kotlin-nodejs-source-map-support") + project.npmProject.require("kotlin-test-nodejs-runner/kotlin-nodejs-source-map-support") ) } - - target.runTask.dependsOn(runTask) } } } \ No newline at end of file