У меня есть разработка и создание webpack-конфигураций, где я переключаюсь между использованием style-loader
и extract-text-webpack-plugin
для extract-text-webpack-plugin
CSS, соответственно. Это связано с тем, что моя конфигурация конфигурации использует горячую замену модуля и, следовательно, требует встроенных стилей, в то время как мой конфигурационный файл не работает.
Однако при переходе от производства к разработке я заметил, что извлеченный main.css
оставшийся от моей сборки webpack, является переопределением встроенных стилей моего style-loader
. Это означает, что горячая перезагрузка не работает на изменения CSS.
Во-первых, не должны ли мои встроенные стили переопределять мою внешнюю main.css
стилей main.css
, так почему это происходит? Во-вторых, если это ожидаемое поведение, каково общее соглашение об этом? Должен ли я использовать некоторый плагин для main.css
чтобы удалить main.css
в моей конфигурации разработки?
Вы можете сделать это
const webpack = require('webpack');
const path = require('path');
const env = require('./env.json');
var conf = {
resolve: {
extensions: ['', '.ts', '.js'],
root: __dirname,
modulesDirectories: ['node_modules']
},
module: {
rules: [
//Some common Loaders Here
{
test: /\.js$/,
loader: 'source-map-loader',
exclude: [
'node_modules/rxjs'
]
}
],
loaders: [{
test: /\.ts$/,
loader: 'awesome-typescript-loader'
}],
},
plugins: [
//Some common plugins Here ,
],
output: {
path: 'src',
filename: '[name].bundle.js',
sourceMapFilename: '[name].bundle.map',
//chunkFilename: '[id].[chunkhash].chunk.js'
}
};
if (env.dev) {
conf.module.rules.push({
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
});
conf.plugins.push(new ExtractTextPlugin("styles.css"));
} else {
conf.module.rules.push({
test: /\.css$/,
use: [{
loader: "style-loader"
},
{
loader: "css-loader"
}
]
});
}
module.exports = conf;