const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const devMode = process.env.NODE_ENV !== 'production';
module.exports = {
// ...
module: {
rules: [
// ...
{
test: /\.(scss|css)$/,
use: [
devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader'
]
}
// ...
]
},
plugins: [
// ...
new MiniCssExtractPlugin({
filename: '[name].css',
chunkFilename: '[id].css'
})
// ...
]
// ...
};这段代码根据环境变量NODE_ENV的值来决定是使用style-loader还是MiniCssExtractPlugin.loader。如果NODE_ENV不是production,意即开发环境,通常会使用style-loader将样式以<style>标签的形式直接注入到页面,便于开发调试。如果是生产环境,则使用MiniCssExtractPlugin.loader将样式提取为独立的.css文件。同时,在plugins数组中加入了MiniCssExtractPlugin实例,用于生产环境下的CSS文件提取。