[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.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir
import org.jetbrains.kotlin.gradle.targets.js.jsQuoted import org.jetbrains.kotlin.gradle.targets.js.jsQuoted
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackAssetExtractPolicy.*
import java.io.File import java.io.File
import java.io.Serializable import java.io.Serializable
import java.io.StringWriter import java.io.StringWriter
@@ -58,11 +57,9 @@ data class KotlinWebpackConfig(
if (cssSettings == null || !cssSettings.enabled) return@also if (cssSettings == null || !cssSettings.enabled) return@also
it.add(versions.cssLoader) it.add(versions.cssLoader)
if (cssSettings.extractPolicy in listOf(NONE, DEPENDS_ON_MODE)) { if (cssSettings.inline) {
it.add(versions.styleLoader) it.add(versions.styleLoader)
} } else {
if (cssSettings.extractPolicy in listOf(ALWAYS, DEPENDS_ON_MODE)) {
it.add(versions.miniCssExtractPlugin) it.add(versions.miniCssExtractPlugin)
} }
} }
@@ -280,31 +277,22 @@ data class KotlinWebpackConfig(
| options: {} | options: {}
| }) | })
| config.plugins.push(new MiniCssExtractPlugin()) | config.plugins.push(new MiniCssExtractPlugin())
""" """.trimMargin()
val nonExtractedCss = val inlinedCss =
""" """
| use.unshift({ | use.unshift({
| loader: 'style-loader', | loader: 'style-loader',
| options: {} | options: {}
| }) | })
| |
"""
val extractedSettings = when (cssSettings.extractPolicy) {
ALWAYS -> extractedCss
DEPENDS_ON_MODE ->
"""
| if (config.mode === 'production') {
| $extractedCss
| } else {
| $nonExtractedCss
| }
""".trimMargin() """.trimMargin()
NONE -> nonExtractedCss
}
appendln(extractedSettings) if (cssSettings.inline) {
appendln(inlinedCss)
} else {
appendln(extractedCss)
}
appendln( appendln(
""" """
@@ -12,5 +12,5 @@ data class KotlinWebpackCssSettings(
var enabled: Boolean = true, var enabled: Boolean = true,
@Input @Input
var extractPolicy: KotlinWebpackAssetExtractPolicy = KotlinWebpackAssetExtractPolicy.DEPENDS_ON_MODE var inline: Boolean = false
) )