当前位置: 首页 > news >正文

webpack的深入学习与实战(持续更新)

一、何为Webpack

Webpack是 一个开源的JavaScript模块打包工具,其最核心的功能是解决模块之间的依赖,把各个模块按照特定的规则和顺序组织在一起,最终合并为一个JS文件或多个。

二、带宽的换算

在这里插入图片描述
目前我们的云服务器带宽为5M

三 、bundle 体积监控工具

1、VS Code中的插件Import Cost

可以帮助我们对引入模块的大小进行实时检测,或者只考虑引用其中的某些子模块

在这里插入图片描述

在这里插入图片描述
2、webpack-bundle-analyzer

它能够帮助我们分析一个bundle的构成

效果:在这里插入图片描述
安装:

npm install --save-dev webpack-bundle-analyzer

实现代码:

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;module.exports = {configureWebpack: config => {if (process.env.NODE_ENV === 'development') {config.plugins.push(new BundleAnalyzerPlugin());}}
};

当你运行 vue-cli-service serve 时,Vue CLI 会将 process.env.NODE_ENV 设置为 “development”,当你运行 vue-cli-service build 时,Vue CLI 会将 process.env.NODE_ENV 设置为 “production”。在这两种情况下,process.env.NODE_ENV 的值都是由 Vue CLI 设置的。Vue CLI 会根据用户执行的命令来决定是设置为开发模式还是生产模式。
你也可以在脚本中设置:

"scripts": {"build": "NODE_ENV=production vue-cli-service build"
}

四、优化
1、script 标签中添加属性defer=“defer”

如果 async=“async”:脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)
如果不使用 async 且 defer=“defer”:脚本将在页面完成解析时执行
如果既不使用 async 也不使用 defer:在浏览器继续解析页面之前,立即读取并执行脚本

相关文章:

  • C#高级 02异步编程
  • table表格中使用el-popover 无效问题解决
  • 连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver‘,亲测有效!!!
  • 尝试读取挪威 3d radar数据
  • 年度总结 | 回味2023不平凡的一年
  • 一款超酷的一体化网站测试工具:Web-Check
  • Ubuntu Linux 入门指南:面向初学者
  • 父组件向子组件传递数据
  • 浅谈数据仓库运营
  • LeetCode 2706. 购买两块巧克力【数组,一次遍历】1207
  • P8780 [蓝桥杯 2022 省 B] 刷题统计
  • Java多线程之线程池,volatile,悲观锁,乐观锁,并发工具类
  • 机器学习之BP神经网络精讲(Backpropagation Neural Network(附案例代码))
  • 基于SpringBoot的在线互动学习网站
  • git上传代码到github远程仓库
  • [译]前端离线指南(上)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • Android开源项目规范总结
  • download使用浅析
  • Java 内存分配及垃圾回收机制初探
  • laravel5.5 视图共享数据
  • node-glob通配符
  • 编写符合Python风格的对象
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 好的网址,关于.net 4.0 ,vs 2010
  • 回流、重绘及其优化
  • 实习面试笔记
  • 使用parted解决大于2T的磁盘分区
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 怎么将电脑中的声音录制成WAV格式
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​linux启动进程的方式
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (ZT)薛涌:谈贫说富
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (一)appium-desktop定位元素原理
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET/C# 使窗口永不获得焦点
  • .net网站发布-允许更新此预编译站点
  • /*在DataTable中更新、删除数据*/
  • ;号自动换行
  • @FeignClient注解,fallback和fallbackFactory
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @ResponseBody
  • @selector(..)警告提示
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [AIGC] 使用Curl进行网络请求的常见用法