| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> webpack前端性能优化 -> 正文阅读 |
|
[JavaScript知识库]webpack前端性能优化 |
??开发环境下:?1.每次修改不用全部重新打包(HMR功能): 在devServer里,加 hot :true ? index.html: index.js: ? source-map,构建源代码和构建后代码的映射,如果构建后的代码出问题,知道在哪个源代码中,便于修改。只需要在webpack.config.js中加入devtool:'source-map' inline-只生成内联source-map,只有一个source-map hidden:隐藏源代码 eval :每一个文件都生成对应source-map nosource:全部隐藏 cheap:只显示错误到行 module: 将loader的source map加入 生产环境:1.oneOf由于文件会把所有的rules都走一遍,所以,需要给给些规则加oneOf[...]:而把需要两次处理的如对js的语法检查放在最开始。 2.缓存优化:babel缓存、源代码缓存?文件资源缓存:强缓存更新不及时,所以使用hash 给文件取个别名,如果文件改了文件名就改了,会重新请求资源。但是打包导致所有文件hash都变了。资源全部重新申请。需要用到chunkHash,但是同一个chunkhash的其他文件也会改名。最后使用contenthash,只有本文件改了才重新请求。 3. tree shaking:去除没有使用的代码前提:使用ES6模块化、开启production? 环境4.代码分割--》实现并行加载、按需加载1. 2. ?3. 5.懒加载和预加载:懒加载:文件需要才会加载。把需要懒加载的文件单独分割,将import放在某个异步函数的回调里(如click)。不会重复加载,只有第一次加载,后面就用缓存中的文件了 预加载:webpackPrefetch:true? ?文件一开始就被加载了,只是在其他必须文件加载完后偷偷加载的。 ?6.PWA:像APP一样可以离线访问?(使用方法不讲了,兼容性不太好) ?7.多进程打包,加快打包速度(放在某个loader后面):?8.externals,资源原本是用连接引入的,防止打包成我们自己的文件? ?DLL(第三方库单独打包,只需要打包一次): |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:55:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |