From 549797c7192e875beb2ce7bc61aa75de238f5cdc Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Mon, 18 May 2020 12:00:08 +0300 Subject: [PATCH] [Gradle, JS] Add nodeArgs --- .../kotlin/gradle/targets/js/dukat/DukatExecutor.kt | 9 +++++++-- .../jetbrains/kotlin/gradle/targets/js/npm/NpmProject.kt | 9 +++++++-- .../kotlin/gradle/targets/js/webpack/KotlinWebpack.kt | 4 ++++ .../gradle/targets/js/webpack/KotlinWebpackRunner.kt | 8 +++++++- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatExecutor.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatExecutor.kt index 278920b7d61..71bb4962ec5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatExecutor.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatExecutor.kt @@ -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. */ @@ -39,7 +39,12 @@ class DukatExecutor( args.addAll(dTsFiles.map { it.absolutePath }) - compilation.npmProject.useTool(exec, "dukat/bin/dukat-cli.js", *args.toTypedArray()) + compilation.npmProject.useTool( + exec, + "dukat/bin/dukat-cli.js", + listOf(), + args + ) } } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmProject.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmProject.kt index 262d59d5cf1..56251e78635 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmProject.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmProject.kt @@ -78,10 +78,15 @@ open class NpmProject(val compilation: KotlinJsCompilation) { private val rootNodeModules: NpmProjectModules? get() = NpmProjectModules(nodeJs.rootPackageDir) - fun useTool(exec: ExecSpec, tool: String, vararg args: String) { + fun useTool( + exec: ExecSpec, + tool: String, + nodeArgs: List = listOf(), + args: List + ) { exec.workingDir = dir exec.executable = nodeJs.requireConfigured().nodeExecutable - exec.args = listOf(require(tool)) + args + exec.args = nodeArgs + require(tool) + args } /** diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt index 13655bb0879..e61d40adddb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt @@ -126,6 +126,9 @@ open class KotlinWebpack : DefaultTask(), RequiresNpmDependencies { @Input var args: MutableList = mutableListOf() + @Input + var nodeArgs: MutableList = mutableListOf() + @Input var sourceMaps: Boolean = true @@ -149,6 +152,7 @@ open class KotlinWebpack : DefaultTask(), RequiresNpmDependencies { execHandleFactory, bin, args, + nodeArgs, KotlinWebpackConfig( mode = mode, entry = entry, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpackRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpackRunner.kt index 0f3e97fafd7..ac67f3200e4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpackRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpackRunner.kt @@ -18,6 +18,7 @@ internal data class KotlinWebpackRunner( val execHandleFactory: ExecHandleFactory, val tool: String, val args: List, + val nodeArgs: List, val config: KotlinWebpackConfig ) { fun execute() = npmProject.project.execWithErrorLogger("webpack") { @@ -46,6 +47,11 @@ internal data class KotlinWebpackRunner( args.addAll(this.args) - npmProject.useTool(execFactory, tool, *args.toTypedArray()) + npmProject.useTool( + execFactory, + tool, + nodeArgs, + args + ) } } \ No newline at end of file