Add patched kotlin-source-map-loader

This commit is contained in:
Ilya Goncharov
2019-10-03 15:15:19 +03:00
parent dad9958adf
commit e8efe5407d
13 changed files with 1758 additions and 23 deletions
@@ -20,6 +20,9 @@ class NpmVersions {
val webpackBundleAnalyzer = NpmPackageVersion("webpack-bundle-analyzer", "3.3.2")
val webpackDevServer = NpmPackageVersion("webpack-dev-server", "3.3.1")
// Temporarily use our own source-map-loader, while original source-map-loader is not updated
// https://github.com/webpack-contrib/source-map-loader/pull/91
val kotlinSourceMapLoader = KotlinGradleNpmPackage("source-map-loader")
val sourceMapLoader = NpmPackageVersion("source-map-loader", "0.2.4")
val sourceMapSupport = NpmPackageVersion("source-map-support", "0.5.12")
@@ -35,7 +35,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
private val versions = nodeJs.versions
private val config: KarmaConfig = KarmaConfig()
private val requiredDependencies = mutableSetOf<NpmPackageVersion>()
private val requiredDependencies = mutableSetOf<RequiredKotlinJsDependency>()
private val configurators = mutableListOf<(KotlinJsTest) -> Unit>()
private val envJsCollector = mutableMapOf<String, String>()
@@ -44,15 +44,13 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
private var configDirectory: File? = project.projectDir.resolve("karma.config.d").takeIf { it.isDirectory }
override val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
get() = mutableListOf<RequiredKotlinJsDependency>().also {
it.add(versions.kotlinJsTestRunner)
it.addAll(requiredDependencies)
}
get() = requiredDependencies.toList()
override val settingsState: String
get() = "KotlinKarma($config)"
init {
requiredDependencies.add(versions.kotlinJsTestRunner)
requiredDependencies.add(versions.karma)
useKotlinReporter()
@@ -176,7 +174,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
requiredDependencies.add(versions.webpack)
requiredDependencies.add(versions.webpackCli)
requiredDependencies.add(versions.sourceMapLoader)
requiredDependencies.add(versions.kotlinSourceMapLoader)
requiredDependencies.add(versions.sourceMapSupport)
}
@@ -16,7 +16,7 @@ import org.gradle.deployment.internal.DeploymentRegistry
import org.gradle.process.internal.ExecHandle
import org.gradle.process.internal.ExecHandleFactory
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.NpmPackageVersion
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
@@ -124,7 +124,7 @@ open class KotlinWebpack : DefaultTask(), RequiresNpmDependencies {
override val nodeModulesRequired: Boolean
@Internal get() = true
override val requiredNpmDependencies: Collection<NpmPackageVersion>
override val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
@Internal get() = createRunner().config.getRequiredDependencies(versions)
@TaskAction
@@ -8,8 +8,8 @@
package org.jetbrains.kotlin.gradle.targets.js.webpack
import com.google.gson.GsonBuilder
import org.jetbrains.kotlin.gradle.targets.js.NpmPackageVersion
import org.jetbrains.kotlin.gradle.targets.js.NpmVersions
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir
import org.jetbrains.kotlin.gradle.targets.js.jsQuoted
import java.io.File
@@ -33,22 +33,23 @@ data class KotlinWebpackConfig(
val progressReporter: Boolean = false,
val progressReporterPathFilter: String? = null
) {
fun getRequiredDependencies(versions: NpmVersions) = mutableListOf<NpmPackageVersion>().also {
it.add(versions.webpack)
it.add(versions.webpackCli)
fun getRequiredDependencies(versions: NpmVersions) =
mutableListOf<RequiredKotlinJsDependency>().also {
it.add(versions.webpack)
it.add(versions.webpackCli)
if (bundleAnalyzerReportDir != null) {
it.add(versions.webpackBundleAnalyzer)
}
if (bundleAnalyzerReportDir != null) {
it.add(versions.webpackBundleAnalyzer)
}
if (sourceMaps) {
it.add(versions.sourceMapLoader)
}
if (sourceMaps) {
it.add(versions.kotlinSourceMapLoader)
}
if (devServer != null) {
it.add(versions.webpackDevServer)
if (devServer != null) {
it.add(versions.webpackDevServer)
}
}
}
enum class Mode(val code: String) {
DEVELOPMENT("development"),
@@ -193,7 +194,7 @@ data class KotlinWebpackConfig(
// source maps
config.module.rules.push({
test: /\.js${'$'}/,
use: ["source-map-loader"],
use: ["kotlin-source-map-loader"],
enforce: "pre"
});
config.devtool = '${devtool.code}';