JS: Do not specify NodeJS path in Gradle projects

We rely on node_modules directory content which must be populated
by the build script itself
This commit is contained in:
Alexey Sedunov
2018-01-17 12:38:14 +03:00
parent c6a9c36275
commit af1d6124ce
@@ -6,18 +6,12 @@
package org.jetbrains.kotlin.idea.nodejs package org.jetbrains.kotlin.idea.nodejs
import com.intellij.execution.configuration.EnvironmentVariablesData import com.intellij.execution.configuration.EnvironmentVariablesData
import com.intellij.openapi.externalSystem.ExternalSystemModulePropertyManager
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.module.Module import com.intellij.openapi.module.Module
import com.intellij.openapi.roots.CompilerModuleExtension import com.intellij.openapi.roots.CompilerModuleExtension
import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import com.intellij.util.PathUtil
import org.jetbrains.kotlin.idea.framework.isGradleModule import org.jetbrains.kotlin.idea.framework.isGradleModule
import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.utils.addIfNotNull
import org.jetbrains.plugins.gradle.model.ExternalProject
import org.jetbrains.plugins.gradle.service.project.data.ExternalProjectDataCache
import org.jetbrains.plugins.gradle.util.GradleConstants
import java.io.File import java.io.File
import java.util.* import java.util.*
@@ -37,23 +31,8 @@ private fun addSingleModulePaths(target: Module, result: MutableList<String>) {
result.addIfNotNull(compilerExtension.compilerOutputPathForTests?.let { "${it.path}/lib" }) result.addIfNotNull(compilerExtension.compilerOutputPathForTests?.let { "${it.path}/lib" })
} }
private fun ExternalProject.findProjectById(id: String): ExternalProject? {
if (this.id == id) return this
for (childProject in childProjects.values) {
childProject.findProjectById(id)?.let { return it }
}
return null
}
private fun getNodeJsClasspath(module: Module): List<String> { private fun getNodeJsClasspath(module: Module): List<String> {
if (module.isGradleModule()) { if (module.isGradleModule()) return emptyList()
val gradleProjectPath = ExternalSystemModulePropertyManager.getInstance(module).getRootProjectPath()
val projectCache = ExternalProjectDataCache.getInstance(module.project)
val rootProject = projectCache.getRootExternalProject(GradleConstants.SYSTEM_ID, File(gradleProjectPath)) ?: return listOf()
val externalProjectId = ExternalSystemApiUtil.getExternalProjectId(module) ?: return listOf()
val buildDir = rootProject.findProjectById(externalProjectId)?.buildDir ?: return listOf()
return listOfNotNull(PathUtil.toSystemIndependentName(buildDir.absolutePath) + "/nodejs_modules")
}
val result = ArrayList<String>() val result = ArrayList<String>()
ModuleRootManager.getInstance(module).orderEntries().recursively().forEachModule { ModuleRootManager.getInstance(module).orderEntries().recursively().forEachModule {