为什么我使用MinicsSextract插件时css模块不工作?

为什么我使用MinicsSextract插件时css模块不工作?,css,sass,webpack-4,css-modules,survivejs,Css,Sass,Webpack 4,Css Modules,Survivejs,我目前正在使用带有miniCssExtractPlugin的css模块,它是有线的,它不工作,它确实将css提取到一个单独的css文件中,但css文件是空的。当我使用样式加载器时,css模块看起来不错,但它不会将css提取到单独的文件中 const cssDevRules=[ { loader:'style-loader' }, { loader:'css-loader?modules&localIdentName=[name]_[local]_[hash:base64:

我目前正在使用带有miniCssExtractPlugin的css模块,它是有线的,它不工作,它确实将css提取到一个单独的css文件中,但css文件是空的。当我使用样式加载器时,css模块看起来不错,但它不会将css提取到单独的文件中

const cssDevRules=[
{
    loader:'style-loader'
},
{
    loader:'css-loader?modules&localIdentName=[name]_[local]_[hash:base64:5]',
},
{
    loader:'sass-loader',
}];
但当我尝试在生产模式下使用MinicsExtractPlugin时,生成css文件为空。代码如下:

const cssProdRules=[
{
    loader: MiniCssExtractPlugin.loader,

},
{
    loader:'css-loader?modules&localIdentName=[name]_[local]_[hash:base64:5]',
},
{
    loader:'sass-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为空,任何人都可以对此提供帮助?

禁用css模块时是否有效?您能进一步简化配置并查看它何时中断吗?是的,我已删除css模块,开发配置正在工作,而生产模式不工作,因为我使用MinicsExtractPlugin.loader而不是样式加载器,我尝试了两种解决方案:1。我使用“extract text webpack plugin”:“^4.0.0-beta.0”和样式加载器,它确实提取了一个seprate css文件,但该文件是空的。我使用MiniCssExtractPlugin.loader和MiniCssExtractPlugin,结果是一样的,css文件是空的我的github repo是:with branch feature/lesson5,任何评论都非常感谢!它可能是
PurifyCSSPlugin
。你能试着不用跑步吗?谢谢juho,结果就是这个问题,我去掉了Purifycsplugin,它就工作了!我将尝试以正确的方式添加purifycssplugin,我可能会错过其他东西。目前,我添加了css模块,它也可以工作。可能还有其他方法(插件)来实现同样的效果。purify插件的好处很大程度上取决于用例。缩小CSS可能会以最少的努力为您带来最大的好处。