В настоящее время я разрабатываю приложение, которое использует разные темы интерфейса. Этими темами являются только CSS-файлы, которые могут быть выбраны пользователем.Создание статических файлов CSS с помощью webpack
Технически эти темы .scss-файлы, которые составитель WebPack и загружены через стандартную ссылку тег в угловом:
<link rel="stylesheet", ng-href="themes/{{theme}}.css">
Моя раздели WebPack конфигурация выглядит следующим образом:
theme1CssExtractor = new ExtractTextPlugin('themes/theme-1.css'),
theme2CssExtractor = new ExtractTextPlugin('themes/theme-2.css'),
module.exports = new WebpackConfig().merge({
entry: {
app: [
'./app/main.ts',
'./assets/sass/themes/theme-1.scss',
'./assets/sass/themes/theme-2.scss'
],
},
output: {
path: "build/",
filename: "[name].bundle.js",
publicPath: "/build/"
},
plugins: [
theme1CssExtractor,
theme2CssExtractor,
],
module: {
loaders: [
{
test: /\.ts$/,
loaders: ['awesome-typescript-loader']
},
[
{
test: /theme-1\.scss$/,
include: path.resolve(__dirname, "assets/sass/themes"),
loader: theme1CssExtractor.extract(
"style",
"css!sass?includePaths[]=" + path.resolve(__dirname, './node_modules/compass-mixins/lib')
)
},
{
test: /theme-2\.scss$/,
include: path.resolve(__dirname, "assets/sass/themes"),
loader: theme2CssExtractor.extract(
"style",
"css!sass?includePaths[]=" + path.resolve(__dirname, './node_modules/compass-mixins/lib')
)
}
]
]
}
Это работает отлично, пока я не хочу использовать webpack-dev-сервер с включенной функцией замены модуля (HMR), потому что extractTextPlugin не поддерживает HMR. Когда я просто отключу extractTextPlugin (options.disable) или удаляю их, все темы скомпилируются в основной модуль, и это - из cource-breaks темы, потому что все они применяются вместе.
Как я могу сгенерировать эти CSS-файлы непосредственно с помощью webpack без использования extractTextPlugin? Я пробовал различные попытки с различными enntries/chunks, файловыми загрузчиками ... но ничего действительно не работает.
Это должно быть просто: создать статические CSS-файлы из SCSS-файлов без преобразования их в JS-файлы без использования ExtractTextPlugin.
Было бы здорово, если бы кто-то мог указать мне в правильном направлении.