diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmApi.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmApi.kt index 7aeaa00cb5a..143cb0b15b4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmApi.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmApi.kt @@ -56,8 +56,13 @@ interface NpmApi : Serializable { data class NpmEnvironment( val rootPackageDir: File, - val nodeExecutable: String + val nodeExecutable: String, + val isWindows: Boolean ) : Serializable internal val NodeJsRootExtension.asNpmEnvironment - get() = NpmEnvironment(rootPackageDir, requireConfigured().nodeExecutable) + get() = NpmEnvironment( + rootPackageDir, + requireConfigured().nodeExecutable, + requireConfigured().isWindows + ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt index daa1d1f73aa..89ad4129818 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnBasics.kt @@ -44,10 +44,17 @@ abstract class YarnBasics : NpmApi { ).filter { it.isNotEmpty() } val nodeExecutable = nodeJs.nodeExecutable - exec.environment( - "PATH", - "$nodeExecutable${File.pathSeparator}${System.getenv("PATH")}" - ) + if (!yarn.ignoreScripts) { + val nodePath = if (nodeJs.isWindows) { + File(nodeExecutable).parent + } else { + nodeExecutable + } + exec.environment( + "PATH", + "$nodePath${File.pathSeparator}${System.getenv("PATH")}" + ) + } val command = yarn.executable if (yarn.standalone) {