到目前为止,我一直在使用extract-text-webpack-plugin和webpack 3制作两个捆绑文件。一种用于本地样式,一种用于全局样式。
因此,在全局样式文件中,我们将从 bootstrap、语义等中提取 css ……在本地样式包中,我们将放置我们自己的样式。
这两个文件都将具有contenthash,因此,例如,如果我在本地样式中更改某些内容并重新构建应用程序,则只有本地样式的哈希值会更改,而全局样式的哈希值不会更改。
更新到 webpack 4 后,需要使用 mini-css-extract-plugin 而不是 extract-text-webpack-plugin。
到目前为止,这是我的设置。我正在尝试不同的东西,但我不知道如何为 mini-css-extract-plugin 设置此设置?
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const ExtractLocal = new ExtractTextPlugin({
filename: 'stylesheet/stylesLocal.[contenthash].local.css',
disable: false,
allChunks: true,
})
const ExtractGlobal = new ExtractTextPlugin({
filename: 'stylesheet/stylesGlobal.[contenthash].css',
disable: false,
allChunks: true,
})
module.exports = {
module: {
rules: [
/* Local styles */
{
test: /\.local\.(css|scss)$/,
use: ExtractLocal.extract({
use: [
{
loader: 'css-loader',
options: {
sourceMap: true,
minimize: true,
modules: true,
importLoaders: 1,
localIdentName: '[local]___[name]__[hash:base64:5]',
},
},
...
],
}),
},
/* Global styles */
{
test: /^((?!\.local).)+\.(css)$/,
use: ExtractGlobal.extract({
use: [
{
loader: 'css-loader',
options: {
sourceMap: true,
minimize: true,
},
},
],
}),
},
],
},
plugins: [
ExtractLocal,
ExtractGlobal,
...
],
}