我目前正在使用带有 miniCssExtractPlugin 的 css 模块,它已连接它不工作,它确实将 css 提取到一个单独的 css 文件中,但 css 文件是空的。当我使用 style-loader 时,它与 css 模块看起来不错,但它会不要将 css 提取到单独的文件中。
const cssDevRules=[
{
loader:'style-loader'
},
{
loader:'css-loader?modules&localIdentName=[name]_[local]_[hash:base64:5]',
},
{
loader:'sass-loader',
}];
但是当我尝试在生产模式下使用 miniCssExtractPlugin 时,生成的 css 文件为空。代码如下:
const cssProdRules=[
{
loader: MiniCssExtractPlugin.loader,
},
{
loader:'css-loader?modules&localIdentName=[name]_[local]_[hash:base64:5]',
},
{
loader:'sass-loader',
}];
我也尝试将 style-loader 与 ExtractTextPlugin 一起使用,仍然无法正常工作,谁能告诉我如何解决这个问题?我会把我所有的 webpack.config.json 放在这里供你参考。
const path = require('path');
const glob = require("glob");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const PurifyCSSPlugin = require("purifycss-webpack");
const isProd = process.env.NODE_ENV === 'production';
const PATHS = {
app: path.join(__dirname, "src"),
};
const MiniCssPlugin = new MiniCssExtractPlugin({
filename: "[name].css",
});
const PurifyCssPlugin = new PurifyCSSPlugin({
paths: glob.sync(`${PATHS.app}/**/*.js`, { nodir: true }),
});
const cssDevRules=[
{
loader:'style-loader'
},
{
loader:'css-loader?modules&localIdentName=[name]_[local]_[hash:base64:5]',
},
{
loader:'sass-loader',
}
];
const cssProdRules=[
{
loader: MiniCssExtractPlugin.loader,
// loader:'style-loader'
},
{
loader:'css-loader?modules&localIdentName=[name]_[local]_[hash:base64:5]',
},
{
loader:'sass-loader',
}
];
console.log("is prod:"+isProd);
const baseConfig = {
module: {
rules: [
{
test: /\.(css|sass|scss)$/,
use: isProd? cssProdRules:cssDevRules,
exclude: /node_modules/,
},
]
},
};
if(isProd){
baseConfig.plugins=[
MiniCssPlugin,
PurifyCssPlugin,
];
}
module.exports = baseConfig;
生产模式不起作用,MiniCssExtract生成的css是空的,有人可以帮忙吗?