webpack优化项目总结

vue项目webpack打包优化实践总结 最近在头疼vue项目打包的问题,看着辛辛苦苦写的项目写完后,打包到线上的用户体验很糟糕,实在是无地自容。后面接触了一些打包优化的方法,现在做一个开发总结,这个技术栈就是vue+element-ui+axios+echarts,使用webpack打包构建工具,算是一个经验笔记只谈,文章若有不足之处,还请各位大侠指点一二,我会尽快改正,谢谢! 目录 路由异步加载 element组件优化 webp... 阅读详情

简述webpack

webpack是用来做什么的?

本质上,webpack是一个现代化javascript应用程序的静态模块打包器(module bundler),是一种实现前端模块化的构建工具, 在前端模块化进程上有着重要的地位

webpack是怎么工作的?

当webpack处理应用程序时,它会递归地构建一个依赖关系图(dependency graph), 其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。

webpack的核心概念是什么?

  • 入口(entry)

  • 输出(output)

  • loader

  • 插件(plugins)

下一步

熟悉了这些概念之我们将使用webpack从两个方面来优化我们的项目;因为细节内容太多,这里暂时不会对某个plugins或loader进行深入讲解

项目背景

  1. 使用vue-cli1搭建, 使用了element-ui作为UI控件的后台管理平台
  2. 在没有更改vue-cli构建配置之前,npm run start启动时间为 65s - 90s, npm run build时间为120s~140s
  3. 使用webpack4进行优化, 优化之后npm run start40~50s,npm run build40s-50s,

优化打包速度

主要思路是提取不变文件,减少打包源文件总体体积

  1. 关闭开发工具(source-map严重影响js打包体积大小, 还会造成项目源文件暴露)

    devtool: false,
    
  2. 提取不变文件

    • extenals // 不变文件cdn 打包,如jquery, react, vue等等 (优先使用,cdn文件需要进行锁版本)

    • dllplugins // 提取不变库,减少打包文件(针对于没有cdn源的npm包)

  3. 多进程loader编译

    • thread-loader // 多进程运行loader, 针对于js,vue 等非常消耗资源的文件
  4. 缓存loader编译的文件

    • cache-loader // 缓存js,vue等非常消耗资源的文件进行缓存
  5. 多进程缓存文件压缩

    • TerserPlugin // 多进程缓存压缩文件

优化用户体验

主要思路是分离chunk,减少entry主包文件大小,模块懒加载减少白屏时间

  1. 使用require.ensure, import 进行模块的懒加载(详见懒加载)

  2. 使用gzip缓存js,css文件

  3. 使用MiniCssExtractPlugin进行css文件提取

  4. 使用splitChunks中的minSize, maxSize对chunk模块进行分割

  5. 组件,js,css的按需加载

使用Webpack优化前端项目 Webpack是一个强大的前端打包工具,它可以将多个文件打包成一个或多个文件,同时还提供了许多优化功能,帮助我们提高前端项目的性能和效率。本篇博客将介绍如何使用Webpack优化前端项目,包括代码分割、压缩优化、缓存处理等技术,以及一些实用的插件和工具。让我们一起深入了解Webpack的优化技巧,提升我们的前端项目。 阅读详情

相关推荐

利用Webpack优化前端项目性能

本文旨在为前端开发者提供一套完整的Webpack性能优化方案,涵盖从基础配置到高级技巧的各个方面。我们将重点讨论如何通过Webpack的各种特性和插件来提升前端项目的构建效率和运行时性能。文章首先介绍Webpack的基本概念和优化原理,然后深入探讨各种优化策略,最后通过实际案例展示这些技术的应用。Webpack: 一个现代JavaScript应用程序的静态模块打包工具Bundle: Webpack打包生成的输出文件Chunk: 代码分割后产生的代码块Loader: 用于转换特定类型模块的转换器。

AI架构全栈开发实战笔记 948

十种Webpack的优化方式

通过以上这些优化策略,可以显著提升Webpack的构建性能,减少打包后文件的体积,加快项目的加载速度,从而提升用户体验。使用Webpack的插件如MiniCssExtractPlugin来提取CSS代码,使用babel-loader的缓存机制等,以减少构建时间和加载时间。通过配置Webpack的Tree Shaking功能,只保留项目中实际使用到的代码,剔除未使用的代码,减少打包后的文件大小。通过配置Webpack的代码分割功能,将项目代码分割成多个块(chunks),并且在需要的时候按需加载。

一个不掉头发的资深小白 5544

SAP ABAP ALV表格实战:5分钟搞定单元格下拉框配置(附完整代码)

本文详细介绍了在SAP ABAP开发中如何快速配置ALV表格的单元格下拉框功能,通过5分钟实战教程帮助开发者掌握关键步骤。文章包含完整的ABAP代码示例,涵盖下拉值定义、字段目录配置及ALV控件绑定等核心操作,特别适合需要实现财务系统费用类型选择或采购系统物料分类等场景的开发者参考。

weixin_28331555的博客 110

12个关于Webpack的技巧优化项目的技巧

12个关于Webpack的技巧优化项目的技巧

jieweiwujie的博客 896

某知名系统漏洞挖掘与利用思路探索

本文以安全研究为目的,分享对该套系统的代码审计和漏洞挖掘过程,文中所提到的漏洞均已提交给CNVD&CITIVD,请勿用做非法用途。

C20220511的博客 1904

Windows事件ID 10010报错:DCOM注册超时与Game Bar修复指南

DCOM(分布式组件对象模型)是Windows中用于跨进程组件通信的核心机制,其注册超时问题常表现为事件ID 10010报错。当Game Bar的PresenceWriter组件因权限配置不当、组件损坏或开机资源竞争而无法在限定时间内向DCOM注册时,系统会记录该错误,并可能伴随DCOM服务主机CPU占用升高或游戏栏功能异常。理解DCOM激活原理与Network Service账户权限,有助于从权限修复、组件重注册及开机时序优化等层面系统排查。本文针对不同Windows版本,提供从静默处理到根治的完整方案,

weixin_33563728的博客 919

webpack指南(优化篇)——webpack项目优化

面试的时候总是会问用webpack对项目做过哪些优化,今天我们就来详细列举一下常用的优化手段;前面我们利用webpack构建了一个项目,今天我们在原项目基础上进行优化,还没有观看的小伙伴可以移步看一下。关于webpack常见的性能优化,我们可以从两个方面去着手考虑:1.传输性能优化;通过优化代码体积等手段提高资源传输速度,达到优化目的;2.构建过程优化;主要是提高webpack的打包速度;

前端成长之路 1679

有限元缺陷:剪切锁死

有限元缺陷:剪切锁死

wsxww11的博客 5189

性能优化之webpack层面优化

指定不同的环境不同的配置 看似配置项很多, 其实只是五个关键字eval,source-map,cheap,module,inline的任意组合 。这五个关键字每一项都代表一个特性, 这四种特性可以任意组合。 它们分别代表以下五种特性): eval: 使用eval包裹模块代码 source-map: 产生.map文件 cheap: 不包含列信息(关于列信息的解释下面会有详细介绍)也不包含loader的sourcemap module: 包含loader的sourcemap(比如jsx to js ,babel

qq_36262295的博客 709

新手必看|HDevelop核心算子快速上手,为C#移植打基础

在上一篇文章中,我们完成了C#+HALCON的开发环境搭建。但在实际工业开发中,绝不会直接在C#中编写视觉算法HDevelop可视化调试算法 → 验证效果 → 导出C#代码 → 集成到上位机。HDevelop是HALCON专属的算法调试工具,支持实时预览图像、参数动态调节、零编译运行,是新手入门和工业算法调试的核心工具。本文聚焦工业场景高频使用的核心算子,从基础操作到实战案例,手把手教你使用HDevelop;同时重点讲解算法导出C#的规范,让你调试完成的算法,能无缝移植到WinForm上位机中。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 778

MFC 修改CheckBox的文本颜色方法

设置主题 这一步是必须的,不可省略。 BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 // 设置主题 HWND

Kim的博客 2249

webpack基础知识八:说说如何借助webpack来优化前端性能?

说说如何借助webpack来优化前端性能?

Allen-Ye博客 1108

数电实验,如何安装Quartus II软件?

数电实验第一步,安装软件Quartus II! 安装这个软件可以说是很折磨我了,依然是failed很多次之后终于可以了! 能成功安装,多亏了网络上的各路大神!!!不胜感激 现在分享经验如下: ps:我分享的是Quartus II 14.0版本的软件及破解器安装使用方法 注意!想要在电脑上顺利安装,前提条件是电脑有10G以上内存!!! 友情提示:建议整个下载过程中,提前关掉所有杀毒、电脑

一个程序媛的成长记录❤ 3655

【webpack优化】项目中webpack的配置和优化

本篇将从项目实践出发,具体分析webpack在配置过程中需要注意哪些问题以及具体的优化方案。 1、resolve resolve 用来告诉 webpack 将如何解析模块. 参考文档: webpack官网 传送门 ->https://www.webpackjs.com/. ...

jmszl1991的博客 714

Electron - Electron failed to install correctly, please delete node_modules/electron and try install

Electron安装失败:Electron failed to install correctly, please delete node_modules/electron and try installing again,electron安装报错:Electron failed to install correctly...解决方案,Electron 未能正确安装,请删除 node_modules/electron,然后再次尝试安装,如何解决这个问题,手把手教你解决,在yarn dev时报错,electr

🏆 前端领域优质创作者 4368

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Webpack 项目构建优化详解

本文总结了Webpack打包构建优化的关键策略。开发环境优化包括:配置开发模式、源码映射、HMR热更新;模块解析优化(别名、扩展名、路径);启用文件系统缓存和Babel缓存;减少监听文件、多进程构建等。生产环境优化包括:启用生产模式自动压缩和TreeShaking;代码分割(SplitChunks);图片压缩(ImageMinimizerPlugin);动态导入实现懒加载;使用webpack-bundle-analyzer分析构建产物。文章详细介绍了各项优化的具体配置方法,帮助开发者提升构建效率和输出质量。

分享前端工程化、AI 应用、Agent 开发与大模型实践! 1028

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Webpack 项目构建与优化指南

在现代前端开发中,Webpack 是一个不可或缺的模块打包工具,它能够将项目中的各种资源(如 JS、CSS、图片等)打包成浏览器可以识别的格式。本文将带你从零开始,一步步构建一个基于 Webpack 的项目,并进行必要的优化,以提高构建效率和运行性能。通过上述步骤,我们成功构建了一个基于 Webpack 的项目,并进行了一系列的优化。这些优化包括了环境变量配置、文件别名设置、构建速度提升以及构建产物优化等,旨在提高开发效率和项目性能。希望这篇文章能帮助你更好地理解和使用 Webpack。

2301_77409965的博客 823

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

如何使用 Webpack 打包和优化前端项目?

通过以上步骤和优化策略,可以高效地管理和优化前端项目,提高开发效率和应用性能。Webpack 是前端开发的重要工具,掌握其基本用法和实战技巧,能够更好地应对复杂的前端项目需求。如果需要进一步自定义 Babel 的行为,可以在.babelrc文件中添加更多配置项。使用自动注入核心模块:指定目标浏览器范围:这些配置可以帮助确保代码兼容性。通过上述步骤,您可以轻松地在 Webpack 中配置最新的 Babel 预设和插件,从而实现对现代 JavaScript 的支持并确保代码的兼容性。

破损的天堂鸟博客 1791

webpack 优化启动项目速度

优化 webpack 项目启动速度 有些时候,需要频繁的启动项目,但是如果项目庞大起来,那么启动一次就需要花费非常多的时间,所以我们可以自己优化一下配置,来减少项目的启动时间 babel 如果使用 chrome 浏览器,那么在开发环境下,其实可以关闭 babel 的转义:includes: []。还有可以添加 babel 的缓存:loader: "babel-loader?cacheDirectory=true" devtool devtool 是 webpack 用来显示 source map 格式的。

shiyutim 6156

vue项目:webpack打包优化实践

详细介绍了vue2项目中使用webpack打包,项目性能优化遇到的问题及解决方案。

Hei, Welcome To vickie's Blog,Good Good Study, Day Day Up ~ 1625

Webpack脚手架项目初始化以及优化

本次脚手架需要引入react和typescript,然后配置webpack,配置环境变量,配置文件别名,最后对构建速度优和构建产物优化。

qq_39465114的博客 1057

❤vue项目webpack打包优化

❤vue项目webpack打包优化 生产环境去除console.log打印的两种方式通过环境变量控制console.log的打印,具体操作如下:1、根目录 .env.xxx文件中写入NODE_ENV参数 2、在main.js里面加上下列语句: 以上完成了配置在babel.config.js 文件中进行修改 2、在babel.config.js可如下写 根据当前的开发模式或打包模式来使用不同的入口文件 2、 build后不可查看源码

林太白 2310

借助 webpack 对项目进行分析优化

进入公司之后,接手的便是前人留下来的一个大项目。庆幸的是整个项目拥有完善的产品功能文档,但是由于项目过于庞大,老旧。包含了打包过慢,冗余文件过多等诸多问题。想要快速的解决这些问题,想要完全把功能重构一遍的话,成本太高了。一个一个文件来过,时间成本也比较大。因此在此篇文章中,我们介绍一下我是如何配合webpack一步步进行分析,将项目进行优化的。 同时我针对思路封装了一个webpack-unuse...

reboot_xwa的博客 221

webpack 项目优化(一)

通过结合项目实际情况选择优化手段,可有效提升开发效率和用户体验。

weixin_46087056的博客 1290

webpack对项目进行优化

通过配置splitChunks插件,可以将公共代码提取到单独的文件中,以减少代码重复加载。按需加载(Lazy Loading):结合使用动态导入(Dynamic Imports)和动态路由,将页面或组件按需加载,减少初始加载时间。CDN 加速:将静态资源(例如图片、字体等)发布到 CDN(内容分发网络),可以减少请求服务器的次数,加速加载速度。代码压缩和混淆:使用Webpack的mode设置为production,自动启用代码压缩和混淆,以减少文件大小。

我的博客简介 746

vue webpack项目打包优化,从60s到17s的优化之路

下面就进入本文的正题了: 对本文感兴趣的,想必都有一定的开发经验了,对webpack工具也有了一定的了解。只是在webpack生态里面有太多的插件了,除了默认推荐的插件之外,不知道怎么找更好用的插件,其实当初,我也有和你一样的困惑,只是我喜欢钻研,喜欢尝试。基于webpack的项目啦都有一个弊端,项目体积越大,打包耗时越长。下面就把我优化项目的案例展示给你。激动么~~~ Vue项目比较大.或者说项目中引入了许多第三方库,那么在执行npm run build构建项目的时候会极其的慢.比如我现在的项目...

盏茶作酒的博客 4183
上一篇: 多个项目公用组件库设计
下一篇: extenals 与 dllplugin 该用哪一个?
一号小白
博客等级 码龄9年 13粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值