Поскольку нет правильного способа сделать это;И решение, используемое угловой тематикой, не было удовлетворительным для нас;мы решили использовать пользовательский конструктор веб-пакетов , который будет компилировать наш стиль на основе предоставленных нами записей.Обратите внимание, что мы не используем SCSS в угловых компонентах явно.
"use strict";
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const AutoPrefixer = require("autoprefixer");
module.exports = {
entry: {
"modern_style.application": "./src/styles/modern_style.scss",
"default.application": "./src/styles/default.scss"
},
plugins: [
new MiniCssExtractPlugin({
filename: "[name].bundle.css"
})
],
module: {
rules: [
{
test: /\.scss$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "postcss-loader",
options: {
ident: "postcss",
plugins: [AutoPrefixer()],
sourceMap: true
}
},
{
loader: "resolve-url-loader"
},
{
loader: "sass-loader",
options: {
precision: 8,
includePaths: [],
sourceMap: true
}
}
]
}
]
}
};
Эти файлы записей будут иметь свои переменные и настройки, примененные в каждом соответствующем файле записей, который выглядит следующим образом:
// Entry file: modern_style.scss
$someVariableToBeUsedOrOverwritten: red;
@import "common/allModulesAreImportedHere"
.customRule{
//...
}
Этот сгенерированный стиль, например, default.bundle.css
, затем загружается через <link rel="stylesheet" type="text/css" [href]="linkToTheme">