Webpack5相关知识点(二)- 优化 (2)- 减少代码体积

目录

一、Tree Shaking

二、Babel

2.1 下载包

2.2 配置

三、Image Minimizer

3.1 下载包

3.2 配置


一、Tree Shaking

Tree Shaking 是一个术语,通常用于描述移除 JavaScript 中的没有使用上的代码。

注意:

  • Tree Shaking 依赖 ES Module。
  • Webpack 已经默认开启了这个功能,无需其他配置。

二、Babel

Babel 为编译的每个文件都插入了辅助代码,使代码体积过大

@babel/plugin-transform-runtime: 禁用了 Babel 自动对每个文件的 runtime 注入,而是引入 @babel/plugin-transform-runtime 并且使所有辅助代码从这里引用

2.1 下载包

npm i @babel/plugin-transform-runtime -D

2.2 配置

          {
            test: /\.m?js$/,
            include: path.resolve(__dirname, "../src"),
            use: {
              loader: "babel-loader",
              options: {
                cacheDirectory: true,
                cacheCompression: false, 
                plugins: ["@babel/plugin-transform-runtime"], // 减少代码体积
              },
            },
          },

三、Image Minimizer

开发如果项目中引用了较多图片,那么图片体积会比较大,将来请求速度比较慢

注意:如果项目中图片都是在线链接,那么就不需要了。本地项目静态图片才需要进行压缩。

image-minimizer-webpack-plugin: 用来压缩图片的插件

3.1 下载包

npm i image-minimizer-webpack-plugin imagemin -D

无损压缩:

npm install imagemin-gifsicle imagemin-jpegtran imagemin-optipng imagemin-svgo -D

有损压缩:

npm install imagemin-gifsicle imagemin-mozjpeg imagemin-pngquant imagemin-svgo -D

注意:有时候安装是可能出现报错下载失败,需要多尝试几次

3.2 配置

const ImageMinimizerPlugin = require("image-minimizer-webpack-plugin");

module.exports = {
  // 省略...
  plugins: [
      // 压缩图片
      new ImageMinimizerPlugin({
        minimizer: {
          implementation: ImageMinimizerPlugin.imageminGenerate,
          options: {
            plugins: [
              ["gifsicle", { interlaced: true }],
              ["jpegtran", { progressive: true }],
              ["optipng", { optimizationLevel: 5 }],
              [
                "svgo",
                {
                  plugins: [
                    "preset-default",
                    "prefixIds",
                    {
                      name: "sortAttrs",
                      params: {
                        xmlnsOrder: "alphabetical",
                      },
                    },
                  ],
                },
              ],
            ],
          },
        },
      }),
    ],
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JHY97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值