webpack常用基本配置

loader配置

css配置

    module: {
        rules: [
            // 详细loader配置
            {
                test: /\.css$/,
                use: [
                    'style-loader',
                    'css-loader'
                ]
            }
        ]
    },

css单独提取成文件

const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module: {
        rules: [
            // css
            {
                test: /\.css$/,
                use: [
                    // 'style-loader',
                    MiniCssExtractPlugin.loader,
                    "css-loader"
                ]
            }
        ]
    },
plugins: [
        new HtmlWebpackPlugin({
            template:"./src/index.html"
        }),
        new MiniCssExtractPlugin({
            // 对输出的css文件重命名
            filename:"css/built.css"
        })
    ],

css压缩

//webpack5
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
    module: {
        rules: [
            // css
            {
                test: /\.css$/,
                use: [
                    // 'style-loader',
                    MiniCssExtractPlugin.loader,
                    "css-loader"
                ]
            }
        ]
    },
    optimization: {
        // 设置开发环境也可以压缩
        minimize:true,
        minimizer: [
            new CssMinimizerPlugin()
        ]
    },

图片配置

webpack4

    module: {
        rules: [
            // 详细loader配置
            {
                test: /\.(jpg|png|gif)$/,
                use: [url-loader],
                options:{
                	//对8kb以下爱的图片进行base4处理
                	limit:8*1024,
                    esmodule:false//f
                }
            }{
            //解决HTML页面引入img
                test:/\.html$/,
                loader:"html-loader"
            }
        ]
    },

webpack5

    module: {
        rules: [
            // 详细loader配置
            {
                test: /\.(jpg|png|gif)$/,
                //默认是对8kb以下爱的图片进行base4处理
                type:"asset"//修改默认值,改为4kb
                parser:{
                	dataUrlCondition:{
                		maxSize:4*1024
            		}
            	}{
            //解决HTML页面引入img
                test:/\.html$/,
                loader:"html-loader"
            }
            }
        ]
    },            

iconfont配置

webpack4

    module: {
        rules: [
            // 详细loader配置
            {
                //除了.css .js .html文件之外的
                exclude: /\.(css|js|html)$/,
                loader:"file-loader"
            }
        ]
    },

webpack5

module: {
        rules: [
            // loader
            {
                exclude: /\.(css|js|html)$/,
                type: 'asset/resource',
                generator: {
                    filename:"[hash][ext][query]"
                }
            }
        ]
    },

plugin配置

html插件

const HtmlWebpackPlugin = require('html-webpack-plugin')    
module.exports={
    plugins: [
        // 默认会创建一个空的HTML,自动引入打包输出的所有资源(JS/CSS)
        // 需求:需要有结构的HTML文件
        new HtmlWebpackPlugin({
            // 复制./src/index.html文件,并自动引入打包输出的所有资源
            template:'./src/index.html',
            //y
            minify:{
                //移除空格
                collapseWhitespace:true,
                //移除注释
                removeComments:true
            }
        })
    ],
}

css-minimizer-webpack-plugin

const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
    module: {
        rules: [
            // css
            {
                test: /\.css$/,
                use: [
                    // 'style-loader',
                    MiniCssExtractPlugin.loader,
                    "css-loader"
                ]
            }
        ]
    },
    optimization: {
        // 设置开发环境也可以压缩
        minimize:true,
        minimizer: [
            new CssMinimizerPlugin()
        ]
    },
}

使用css-minimizer-webpack-plugin后webpack无法自动打包js!!!

所以我们需要手动下载js压缩插件terser-webpack-plugin

npm i terser-webpack-plugin -D
//webpack.config.js
const TerserPlugin = require("terser-webpack-plugin");

module.exports = {
  optimization: {
    minimize: true,
    minimizer: [new TerserPlugin()],
  },
};

重新打包,能发现js文件被压缩了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值