为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第7天 webpack(5)

标签:
webpack

课程名称:前端框架及项目面试 聚焦Vue3/React/Webpack
课程章节:第10章 webpack 和 babel
主讲老师:双越

课程内容:

今天学习的内容包括:
10-16 webpack优化构建速度-考点总结和复习
10-17 webpack优化产出代码-考点串讲
10-18 什么是Tree-Shaking
10-19 ES Module 和 Commonjs 的区别
10-20 什么是Scope Hosting
webpack 性能优化主要是优化构建打包速度 + 优化产出代码。
这几节主要是优化产出代码。

课程收获:

大概复述一下

优化构建速度:
可用于生产环境:babel-loader、IgnorePlugin、noParse、happyPack、ParallelUglifyPlugin
开发环境:自动刷新、热更新、DllPlugin、

产出代码优化方式

小图片 base64 编码

  {
    test: /\.(png|jpg|jpeg|gif)$/,
    use: {
      loader: 'url-loader',
      options: {
        // 小于 5kb 的图片用 base64 格式产出
        // 否则,依然延用 file-loader 的形式,产出 url 格式
        limit: 5 * 1024,
        // 打包到 img 目录下
        outputPath: '/img1/',
        // 设置图片的 cdn 地址(也可以统一在外面的 output 中设置,那将作用于所有静态资源)
        publicPath: 'http://cdn.abc.com'
      }
    }
  },

output filename: ‘[name].[contentHash:8].js’

只有发生变化文件更新 hash 值,需要重新加载。不变的用缓存。

懒加载

公共和三方代码单独提取

CDN 加速

  output: {
    publicPath: 'http://cdn.abc.com'
  }

引入文件地址以 publicPath 前缀
对应打包后文件也上传 publicPath 对应服务器

用 production

自动开启代码压缩
自动删除 vue、react 里调试代码
自动启动 tree-shaking (没有用到的代码引用了也不打包 )

Module 和 Commonjs

ES6 Module 静态引入(直接 import 那种),编译时引入, 能用 Tree-Shaking
Commonjs 动态引入(比如某些条件下,require(’./XX’)),执行时引入

Scope Hosting

代码体积更小(多个文件对应多个函数打包成一个函数)
创建函数作用域更少
代码可读性更好
图片描述
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消