[Gradle, JS] Fix with beta version of webpack-dev-server to work with webpack 5

^KT-46162 fixed
^KT-46331 fixed
This commit is contained in:
Ilya Goncharov
2021-04-23 13:57:48 +03:00
committed by TeamCityServer
parent b6fa28ea81
commit 9baa24e626
6 changed files with 64 additions and 28 deletions
@@ -10,8 +10,10 @@ val npmPackages = listOf(
NpmPackage("webpack"), NpmPackage("webpack"),
NpmPackage("webpack", "4.46.0", "webpack4"), NpmPackage("webpack", "4.46.0", "webpack4"),
NpmPackage("webpack-cli"), NpmPackage("webpack-cli"),
NpmPackage("webpack-cli", "3.3.12", "webpackCli3"),
NpmPackage("webpack-bundle-analyzer"), NpmPackage("webpack-bundle-analyzer"),
NpmPackage("webpack-dev-server"), NpmPackage("webpack-dev-server", "4.0.0-beta.2"),
NpmPackage("webpack-dev-server", "3.11.2", "webpackDevServer3"),
NpmPackage("source-map-loader"), NpmPackage("source-map-loader"),
NpmPackage("source-map-loader", "1.1.3", "sourceMapLoader1"), NpmPackage("source-map-loader", "1.1.3", "sourceMapLoader1"),
NpmPackage("source-map-support"), NpmPackage("source-map-support"),
@@ -14,19 +14,21 @@ import java.io.Serializable
class NpmVersions : Serializable { class NpmVersions : Serializable {
val dukat = NpmPackageVersion("dukat", "0.5.8-rc.4") val dukat = NpmPackageVersion("dukat", "0.5.8-rc.4")
val webpack4 = NpmPackageVersion("webpack", "4.46.0") val webpack4 = NpmPackageVersion("webpack", "4.46.0")
val webpackCli3 = NpmPackageVersion("webpack-cli", "3.3.12")
val webpackDevServer = NpmPackageVersion("webpack-dev-server", "4.0.0-beta.2")
val webpackDevServer3 = NpmPackageVersion("webpack-dev-server", "3.11.2")
val sourceMapLoader1 = NpmPackageVersion("source-map-loader", "1.1.3") val sourceMapLoader1 = NpmPackageVersion("source-map-loader", "1.1.3")
val webpack = NpmPackageVersion("webpack", "5.27.1") val webpack = NpmPackageVersion("webpack", "5.35.0")
val webpackCli = NpmPackageVersion("webpack-cli", "4.5.0") val webpackCli = NpmPackageVersion("webpack-cli", "4.6.0")
val webpackBundleAnalyzer = NpmPackageVersion("webpack-bundle-analyzer", "4.4.0") val webpackBundleAnalyzer = NpmPackageVersion("webpack-bundle-analyzer", "4.4.1")
val webpackDevServer = NpmPackageVersion("webpack-dev-server", "3.11.2")
val sourceMapLoader = NpmPackageVersion("source-map-loader", "2.0.1") val sourceMapLoader = NpmPackageVersion("source-map-loader", "2.0.1")
val sourceMapSupport = NpmPackageVersion("source-map-support", "0.5.19") val sourceMapSupport = NpmPackageVersion("source-map-support", "0.5.19")
val cssLoader = NpmPackageVersion("css-loader", "5.1.3") val cssLoader = NpmPackageVersion("css-loader", "5.2.4")
val styleLoader = NpmPackageVersion("style-loader", "2.0.0") val styleLoader = NpmPackageVersion("style-loader", "2.0.0")
val toStringLoader = NpmPackageVersion("to-string-loader", "1.1.6") val toStringLoader = NpmPackageVersion("to-string-loader", "1.1.6")
val miniCssExtractPlugin = NpmPackageVersion("mini-css-extract-plugin", "1.3.9") val miniCssExtractPlugin = NpmPackageVersion("mini-css-extract-plugin", "1.5.0")
val mocha = NpmPackageVersion("mocha", "8.3.2") val mocha = NpmPackageVersion("mocha", "8.3.2")
val karma = NpmPackageVersion("karma", "6.2.0") val karma = NpmPackageVersion("karma", "6.3.2")
val karmaChromeLauncher = NpmPackageVersion("karma-chrome-launcher", "3.1.0") val karmaChromeLauncher = NpmPackageVersion("karma-chrome-launcher", "3.1.0")
val karmaPhantomjsLauncher = NpmPackageVersion("karma-phantomjs-launcher", "1.0.4") val karmaPhantomjsLauncher = NpmPackageVersion("karma-phantomjs-launcher", "1.0.4")
val karmaFirefoxLauncher = NpmPackageVersion("karma-firefox-launcher", "2.1.0") val karmaFirefoxLauncher = NpmPackageVersion("karma-firefox-launcher", "2.1.0")
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackDevtool import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackDevtool
import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackMajorVersion
import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackMajorVersion.Companion.choose import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackMajorVersion.Companion.choose
import org.jetbrains.kotlin.gradle.tasks.dependsOn import org.jetbrains.kotlin.gradle.tasks.dependsOn
import org.jetbrains.kotlin.gradle.utils.newFileProperty import org.jetbrains.kotlin.gradle.utils.newFileProperty
@@ -112,10 +111,21 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
)() )()
task.description = "start ${mode.name.toLowerCase()} webpack dev server" task.description = "start ${mode.name.toLowerCase()} webpack dev server"
task.devServer = KotlinWebpackConfig.DevServer( webpackMajorVersion.choose(
open = true, {
contentBase = listOf(compilation.output.resourcesDir.canonicalPath) task.devServer = KotlinWebpackConfig.DevServer(
) open = true,
static = mutableListOf(compilation.output.resourcesDir.canonicalPath)
)
},
{
task.devServer = KotlinWebpackConfig.DevServer(
open = true,
contentBase = mutableListOf(compilation.output.resourcesDir.canonicalPath)
)
}
)()
task.outputs.upToDateWhen { false } task.outputs.upToDateWhen { false }
@@ -141,10 +141,20 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
task.description = "start ${type.name.toLowerCase()} webpack dev server" task.description = "start ${type.name.toLowerCase()} webpack dev server"
task.devServer = KotlinWebpackConfig.DevServer( webpackMajorVersion.choose(
open = true, {
contentBase = listOf(compilation.output.resourcesDir.canonicalPath) task.devServer = KotlinWebpackConfig.DevServer(
) open = true,
static = mutableListOf(compilation.output.resourcesDir.canonicalPath)
)
},
{
task.devServer = KotlinWebpackConfig.DevServer(
open = true,
contentBase = mutableListOf(compilation.output.resourcesDir.canonicalPath)
)
}
)()
task.outputs.upToDateWhen { false } task.outputs.upToDateWhen { false }
@@ -215,7 +215,12 @@ class KotlinKarma(
versions.webpack4 versions.webpack4
) )
) )
requiredDependencies.add(versions.webpackCli) requiredDependencies.add(
webpackMajorVersion.choose(
versions.webpackCli,
versions.webpackCli3
)
)
requiredDependencies.add(versions.formatUtil) requiredDependencies.add(versions.formatUtil)
requiredDependencies.add( requiredDependencies.add(
webpackMajorVersion.choose( webpackMajorVersion.choose(
@@ -103,7 +103,12 @@ data class KotlinWebpackConfig(
versions.webpack4 versions.webpack4
) )
) )
it.add(versions.webpackCli) it.add(
webpackMajorVersion.choose(
versions.webpackCli,
versions.webpackCli3
)
)
it.add(versions.formatUtil) it.add(versions.formatUtil)
if (bundleAnalyzerReportDir != null) { if (bundleAnalyzerReportDir != null) {
@@ -120,7 +125,12 @@ data class KotlinWebpackConfig(
} }
if (devServer != null) { if (devServer != null) {
it.add(versions.webpackDevServer) it.add(
webpackMajorVersion.choose(
versions.webpackDevServer,
versions.webpackDevServer3
)
)
} }
if (!cssSupport.enabled || cssSupport.rules.isEmpty()) return@also if (!cssSupport.enabled || cssSupport.rules.isEmpty()) return@also
@@ -153,14 +163,11 @@ data class KotlinWebpackConfig(
@Suppress("unused") @Suppress("unused")
data class DevServer( data class DevServer(
val inline: Boolean = true, var open: Any = true,
val lazy: Boolean = false, var port: Int? = null,
val noInfo: Boolean = true, var proxy: MutableMap<String, Any>? = null,
val open: Any = true, var static: MutableList<String>? = null,
val overlay: Any = false, var contentBase: MutableList<String>? = null
val port: Int? = null,
val proxy: Map<String, Any>? = null,
val contentBase: List<String>
) : Serializable ) : Serializable
fun save(configFile: File) { fun save(configFile: File) {