webpack基本配置和优化

const { resolve } = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const optimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')
const compressionWebpackPlugin = require("compression-webpack-plugin")


module.exports = {
    entry: './src/index.js',
    output: {
        filename: './built.js',
        path: resolve(__dirname, 'build')
    },
    // 配置loader
    module: {
        rules: [
            // 配置less
            {
                test: /\.less$/,
                // 从右往左解析loader
                use: [
                    MiniCssExtractPlugin.loader, 'css-loader', 'less-loader'
                ]
            },
            // 配置css
            {
                test: /\.css$/,
                use: [
                    MiniCssExtractPlugin.loader, 'css-loader'
                ]
            },
            // 图片
            {
                test: /\.(jpg|gif|png)/,
                loader: 'url-loader',
                // loader配置项
                options: {
                    // 默认使用common.js  需要改为esModule
                    esModule: true,
                    // 设置阈值  超过阈值交给 file-loader进行处理  小于的话图片路径改为base64编码
                    limit: 5 * 1024,
                    // 文件名只截取前十位
                    name: '[hash:10].[ext]'
                }
            },
        ]
    },
    plugins: [
        // 打包html
        new HtmlWebpackPlugin({
            template: './src/index.html',
            // 压缩HTML
            minify: {
                // 移除空格
                collapseWhitespace: true,
                // 移除注释
                removeComments: true
            }
        }),
        // 分离css
        new MiniCssExtractPlugin({
            filename: 'css/buit.css'
        }),
        // 压缩CSS
        new optimizeCssAssetsWebpackPlugin(),
        // 开启g-zip压缩
        new compressionWebpackPlugin({
            test: /\.(js|css)$/,         //匹配要压缩的文件
            algorithm: "gzip"
        })
    ],
    // 开启本地服务
    devServer: {
        contentBase: resolve(__dirname, 'build'),
        // 开启g-zip压缩
        compress: true,
        port: 3000,
        open: true
    },
    mode: 'development'
}

优化:
1.使用html-webpack-plugin压缩HTML
2.使用optimize-css-assets-webpack-plugin压缩CSS
3.使用compression-webpack-plugin开启g-zip压缩
4.使用dll-webpack缓存第三方库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Webpack是一个用于打包前端应用程序的工具,可以将多个模块打包成一个或多个文件,同时还支持代码分离、模块化、压缩等功能。下面是Webpack基本配置优化代码的说明: 1. 基本配置 (1)entry:入口文件,Webpack会从该文件开始递归解析依赖,生成打包后的文件。 (2)output:输出文件配置,指定打包后生成的文件路径和名称。 (3)module:模块加载器配置,用于加载各种类型的文件,如js、css、图片等。 (4)plugins:插件配置,用于扩展Webpack功能,如压缩代码、提取公共模块、生成HTML模板等。 (5)devServer:开发服务器配置,可以自动编译代码并提供热更新等功能。 (6)resolve:模块解析配置,用于配置模块的搜索路径、别名等。 2. 优化代码 (1)使用Tree Shaking:Tree Shaking是Webpack 2引入的功能,用于去除无用的代码。只有被使用的代码才会被打包进最终的文件。 (2)使用Code Splitting:将代码拆分成多个块,按需加载,可以提高页面加载速度。 (3)使用动态导入:使用import()函数动态加载代码,可以根据需要加载不同的模块,提高性能。 (4)使用缓存:使用缓存可以避免重复打包已经打包过的代码,提高打包速度。 (5)使用异步加载:异步加载可以提高页面加载速度,特别是在处理大型应用程序时更为重要。 (6)使用压缩插件:压缩代码可以减小文件大小,提高加载速度。 (7)使用静态资源CDN:使用CDN可以将静态资源分布到多个服务器上,提高访问速度,减少服务器负载。 总之,通过合理的配置优化,可以大大提高Webpack的性能和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值