[Gradle, JS] Simplify css settings

#KT-32721 fixed
This commit is contained in:
Ilya Goncharov
2020-04-02 16:11:32 +03:00
parent 9b13c05f67
commit d74c52f09a
3 changed files with 10 additions and 34 deletions
@@ -1,12 +0,0 @@
/*
* 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.
*/
package org.jetbrains.kotlin.gradle.targets.js.webpack
enum class KotlinWebpackAssetExtractPolicy {
ALWAYS,
DEPENDS_ON_MODE,
NONE
}
@@ -12,7 +12,6 @@ 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 org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackAssetExtractPolicy.*
import java.io.File
import java.io.Serializable
import java.io.StringWriter
@@ -58,11 +57,9 @@ data class KotlinWebpackConfig(
if (cssSettings == null || !cssSettings.enabled) return@also
it.add(versions.cssLoader)
if (cssSettings.extractPolicy in listOf(NONE, DEPENDS_ON_MODE)) {
if (cssSettings.inline) {
it.add(versions.styleLoader)
}
if (cssSettings.extractPolicy in listOf(ALWAYS, DEPENDS_ON_MODE)) {
} else {
it.add(versions.miniCssExtractPlugin)
}
}
@@ -280,31 +277,22 @@ data class KotlinWebpackConfig(
| options: {}
| })
| config.plugins.push(new MiniCssExtractPlugin())
"""
""".trimMargin()
val nonExtractedCss =
val inlinedCss =
"""
| use.unshift({
| loader: 'style-loader',
| options: {}
| })
|
"""
val extractedSettings = when (cssSettings.extractPolicy) {
ALWAYS -> extractedCss
DEPENDS_ON_MODE ->
"""
| if (config.mode === 'production') {
| $extractedCss
| } else {
| $nonExtractedCss
| }
""".trimMargin()
NONE -> nonExtractedCss
}
appendln(extractedSettings)
if (cssSettings.inline) {
appendln(inlinedCss)
} else {
appendln(extractedCss)
}
appendln(
"""
@@ -12,5 +12,5 @@ data class KotlinWebpackCssSettings(
var enabled: Boolean = true,
@Input
var extractPolicy: KotlinWebpackAssetExtractPolicy = KotlinWebpackAssetExtractPolicy.DEPENDS_ON_MODE
var inline: Boolean = false
)