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

发布于 2022-09-07 21:25:14 字数 1845 浏览 13 评论 0

最近在学习webpack4,发现了很多跟之前版本不一样的地方,最为显著的是对css的处理了,在4.8版本的webpack里还可以运行的css压缩,现在的版本就不支持了,也是醉了,我现在完全不知道怎么进行css压缩和加前缀了,有没有大神指导一下,附上我现在的配置文件:

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')
  ]
};

求大神指导,万分感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

虫児飞 2022-09-14 21:25:14

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')()
  ]

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文