鍍金池/ 問答/HTML/ webpack最新版是怎么處理css的?

webpack最新版是怎么處理css的?

最近在學習webpack4,發(fā)現(xiàn)了很多跟之前版本不一樣的地方,最為顯著的是對css的處理了,在4.8版本的webpack里還可以運行的css壓縮,現(xiàn)在的版本就不支持了,也是醉了,我現(xiàn)在完全不知道怎么進行css壓縮和加前綴了,有沒有大神指導一下,附上我現(xiàn)在的配置文件:

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


// setting webpack config
const config = {
    target: "web",
    devtool: "#source-map", // output mode
    entry: { // multiple entry
        pageA: "./src/pageA.js",
        pageB: "./src/pageB.js"
    },
    output: { // output config
        filename: './[name].[hash].js',
        chunkFilename: './[name].[hash].js',
        path: path.resolve(__dirname, 'dist')
    },
    module: {
        rules: [{ // loader sass and css
            test: /\.(scss|css)$/,
            use: [
                MiniCssExtractPlugin.loader,
                {
                    loader: 'css-loader?modules=false',
                    options: {
                        importLoaders: 1,
                        minimize: true
                    }
                },
                {
                    loader: 'postcss-loader',
                    options: {
                        config: {
                            path: path.resolve(__dirname, './postcss.config.js')
                        }
                    },
                },
                "sass-loader"
            ]
        }]
    },
    plugins: [
        new webpack.NoEmitOnErrorsPlugin(),
        new MiniCssExtractPlugin({
            filename: "[name].css",
            chunkFilename: "[id].css"
        }),
        new HTMLPlugin({ 
            template: 'index.html'
        })
    ]
};

module.exports = config;
module.exports = {
  plugins: [
    require('autoprefixer')
  ]
};

求大神指導,萬分感謝!

回答
編輯回答
囍槑

1.壓縮css:

配合使用optimize-css-assets-webpack-plugin和cssnano模塊。

const optimizeCss = require('optimize-css-assets-webpack-plugin');

module.exports = {

plugins: [
    new optimizeCss({
        assetNameRegExp: /\.style\.css$/g,
        cssProcessor: require('cssnano'),
        cssProcessorOptions: { discardComments: { removeAll: true } },
        canPrint: true
    }),
],

optimization: {

    minimizer: [new optimizeCss({})], //實例化,如果壓縮js,uglify-webpack-plugin也需要放這。
    

}

}

2.importLoaders: 2 //你這用了postcss-loader和sass-loader..

loader: 'postcss-loader',

options: {       
  plugins: () => [
      require('postcss-cssnext')()
  ]

}

2017年4月8日 16:18