webpack笔记08 -- css 的提取、兼容、压缩

webpack css 的提取、兼容、压缩 (GitHub)

提取 css 成单独文件

1. 下载

npm i mini-css-extract-plugin -D

2. 使用

  • webpack.config.js:
const MiniCssExtractPlugin = require('mini-css-extract-plugin')

module.exports = {

    module: {
        rules: [{
                test: /\.css$/,
                use: [{
                        loader: MiniCssExtractPlugin.loader,
                        options: {
                            publicPath: '../',
                            hmr: process.env.NODE_ENV === 'development',
                        },
                    },
                    'css-loader',
                ],
            },
            {
                test: /\.scss$/,
                use: [{
                    loader: MiniCssExtractPlugin.loader,
                    options: {
                        publicPath: '../',
                        hmr: process.env.NODE_ENV === 'development',
                    },
                }, 'css-loader', 'sass-loader'],
            },
        ],
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename: './css/[name].bundle.css'
        })
    ],

}

css 兼容性处理

css: 兼容性处理: postcss --> postcss-loader postcss-preset-env

1. 下载

npm i postcss-loader  postcss-preset-env -D

2. 使用

module.exports = { 
    module: {
        rules: [{
                test: /\.css$/,
                use: [{
                        loader: MiniCssExtractPlugin.loader,
                        options: {
                            publicPath: '../',
                            hmr: process.env.NODE_ENV === 'development',
                        },
                    },
                    'css-loader',
                    /* css:兼容性处理: postcss -->  postcss-loader  postcss-preset-env
                        帮postcss找到package.json中browserslist里面配置,通过配置加载指定的css兼容性样式
                        "browserslist": { }
                   */
                    // 使用loader的默认配置: 'postcss-loader'
                    // 不使用默认配置,修改loader的配置
                    {
                        loader: 'postcss-loader',
                        options: {
                            ident: 'postcss',
                            plugins: () => [
                                // postcss 的插件
                                require('postcss-preset-env')()
                            ]
                        }
                    },
                    {
                        test: /\.scss$/,
                        use: [{
                                loader: MiniCssExtractPlugin.loader,
                                options: {
                                    publicPath: '../',
                                    hmr: process.env.NODE_ENV === 'development',
                                },
                            },
                            'css-loader',
                            {
                                loader: 'postcss-loader',
                                options: {
                                    ident: 'postcss',
                                    plugins: () => [
                                        // postcss 的插件
                                        require('postcss-preset-env')()
                                    ]
                                }
                            },
                            'sass-loader'
                        ],
                    },
                ],
            },  
        ],
    }, 
}
  • package.json
"browserslist": {
    // 开发环境 ---> 设置node环境变量:process.env.NODE_ENV = development
    "development": [
        "last 1 chrome version",
        "last 1 firefox version",
        "last 1 safari version"
    ],
    // 生产环境,默认是看生产环境
    "production":[
        ">0.1%", // 大于99.9%的浏览器
        "not dead", // 不是“死的”浏览器
        "not op_mini all" // not op_mini
    ]
}

压缩 css

1. 下载

npm i optimize-css-assets-webpack-plugin -D

2. 使用

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

module.exports = {
    plugins: [
        new CleanWebpackPlugin(),
        new HtmlWebpackPlugin({
            template: './src/index.html',
        }),
        new MiniCssExtractPlugin({
            filename: './css/[name].bundle.css'
        }),
        new OptimizeCssAssetsWebpackPlugin()
    ],
}
GitHub源代码:https://github.com/GYQ-LQ/webpack-actual/tree/master/08-css_bundle
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值