совместное использование mini-css-extract-plugin и style-loader - PullRequest
0 голосов
/ 14 апреля 2019

Я новичок в этом веб-пакете и следую некоторым учебникам, чтобы выучить основы.

Я хотел бы использовать style-loader для добавления таблиц стилей во время разработки (с включенным HMR) и хочу использовать MiniCssExtractPlugin для производственных сборок. Но когда я использую плагин MiniCssExtractPlugin, я теряю возможность вставки в style-loader.

Пожалуйста, посмотрите мою конфигурацию веб-пакета:

const webpack = require('webpack');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const path = require('path');

module.exports = {
    entry: ['./src/index.js'],
    output: {
        filename: 'app.js',
        path: path.resolve(__dirname, 'dist')
    },
    module: {
        rules: [
            {
                test: /\.(js|jsx)$/,
                exclude: /node_modules/,
                use: {
                    loader: "babel-loader"
                }
            },
            {
                test: /\.(sass|scss)$/,
                use: [
                    "style-loader",
                   {
                        loader: MiniCssExtractPlugin.loader,
                        options: {
                            hmr: process.env.NODE_ENV === 'development'
                        }
                    },
                    "css-loader",
                    "sass-loader"
                ]
            }
        ]
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new MiniCssExtractPlugin({
            filename: '[name].css',
            chunkFilename: '[id].css'
        })
    ],
    devServer: {
        contentBase: path.join(__dirname, 'dist'),
        compress: true,
        hot: true,
        port: 3000
    }
};

1 Ответ

0 голосов
/ 23 апреля 2019

MiniCssExtractPlugin говорит на самом деле вы не можете сделать это:

Этот плагин должен использоваться только в производственных сборках без style-loader в цепочке загрузчиков, особенно если вы хотите иметь HMR в разработке.

...