hgq's docs
主页
ES6-阮一峰 (opens new window)
Vue文档 (opens new window)
Axios文档 (opens new window)
Vue Router (opens new window)
Vuex文档 (opens new window)
面试题-Vue (opens new window)
面试题-JS (opens new window)

guoguoqiqi

漫不经心的向往
主页
ES6-阮一峰 (opens new window)
Vue文档 (opens new window)
Axios文档 (opens new window)
Vue Router (opens new window)
Vuex文档 (opens new window)
面试题-Vue (opens new window)
面试题-JS (opens new window)
  • webpack是什么、为什么选择它
  • webpack中module、chunk和bundle的概念
  • 说一下在webpack中的loader和plugin的不同
  • webpack 三种hash的区别
  • webpack基本核心概念
  • webpack工作机制
  • 常用的Loader
  • 常用的Plugin
  • webpack配置与优化实践
  • webpack热更新原理
  • 如何配置webpack热更新
  • 如何提升webpack构建速度
  • babel中polyfill的作用
  • npm和yarn的对比
  • 如何减小打包体积提高页面加载速度
    • 介绍SourceMap
    • 搭建一个前端工程
    • 自定义loader
    • 自定义plugin
    • 相关面试题集合
    • 相关文档网站
    • 对比一下webpack、vite、rollup等构建工具.md
    • loader、plugin的区别,以及编写的思路
    • css-loader和style-loader的区别
    • url-loader和file-loader的区别
    • webpack代码分割和公共代码提取
    • Webpack
    guoguoqiqi
    2022-02-15

    如何减小打包体积提高页面加载速度

    # 如何减小打包体积提高页面加载速度

    # 分析输出文件

    使用插件 webpack-bundle-analyzer

    # 常用优化方法

    # 减小打包体积

    • 代码压缩
    1. JS 压缩: 使用 TerserWebpackPlugin 来压缩 JavaScript。
    2. CSS 压缩: 使用 CssMinimizerWebpackPlugin 压缩 CSS 文件。
    • 代码分离
    1. 抽离重复代码: SplitChunksPlugin 插件开箱即用,可以将公共的依赖模块提取到已有的入口 chunk 中,或者提取到一个新生成的 chunk。

    2. CSS 文件分离: MiniCssExtractPlugin 插件将 CSS 提取到单独的文件中,为每个包含 CSS 的 JS 文件创建一个 CSS 文件,并且支持 CSS 和 SourceMaps 的按需加载。

    3. 最小化 entry chunk: 通过配置 optimization.runtimeChunk = true,为运行时代码创建一个额外的 chunk,减少 entry chunk 体积,提高性能。

    • tree-shaking摇树
    1. JS:目的就是去除被引用但是没有被使用的代码 只需要将mode模式设置为production即可开启 (webpack5 sideEffects)

    2. 对组件库引用的优化:按需引入所需的方法或者组件 lodash、ant-design等

    3. CSS:使用 purgecss-webpack-plugin 对 CSS Tree Shaking。

    • CDN

    可以将一些资源文件或者是不想参与打包的库通过cdn引入,然后externals配置外部扩展

    # 提高页面加载速度

    • 懒加载

    通过 webpack 提供的 import() 语法 动态导入 功能进行代码分离,通过按需加载,大大提升网页加载速度。

    • 小图片使用base64格式,不使用用网络请求

    通过url-loader会将小图片转为base64格式,减少网络请求,提升加载速度

    • 打包时合理使用hash,如果没改动的文件,命中缓存

    当我们在打包时,使用hash计算文件变动,如果文件被改变,则hash的值改变,在上线后,浏览器访问时没有改变的文件会命中缓存,从而达到性能优化的目的

    # 参考文章链接

    学习 Webpack5 之路(优化篇) (opens new window)
    webpack优化解决项目体积大、打包时间长、刷新时间长问题! (opens new window)

    ← npm和yarn的对比 介绍SourceMap→

    最近更新
    01
    vuex数据持久化怎么做
    05-22
    02
    vue的动态路由怎么配置使用
    05-22
    03
    vue权限控制一般怎么做
    05-22
    更多文章>
    Theme by Vdoing | Copyright © 2022-2022 Guoquoqiqi | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式