webpack优化

webpack 优化

性能分析

  • Webpack-bundle-analyzer
    提供了的图表,展示了引入的所有模块的大小、路径等信息,可以针对性的做出优化。
  • speed-measure-webpack-plugin
    使用 Speed Measure Plugin 来对打包过程中消耗的时间进行精确的统计

优化模块的查找路径

在代码编写的时候不会文件的绝对路径写上去, 一般会用简写, 让代码更加好看, webpack在编译的时候回根据配置去和代码里面的写的路径去解析真正的文件路径.

  • 优化 resolve.modules
    resolve.modules 用于配置 webpack 去哪些目录下寻找第三方模块,resolve.modules 的默认值是 node_modules,含义是先去当前目录下的 ./node_modules 寻找,没有找到就去上一级目录中找,一路递归;

  • 优化resolve.alias
    resolve.alias 配置项通过别名来把原导入路径映射成新的导入路径,减少耗时的递归解析操作;

  • 优化resolve.extensions
    在导入语句中没带文件后缀时,webpack 会根据 resolve.extensions 自动带上后缀去尝试询问文件是否存在,所以配置 resolve.extensions 应注意:
    1. resolve.extensions 列表要尽可能小,不要把不存在的后缀添加进去;
    2. 高频后缀名放在前面,以便尽快退出查找过程;
    3. 在写代码时,尽可能带上后缀名,从而避免寻找过程。

  • 优化resolve.mainFields
    有一些第三方模块会针对不同环境提供几份代码,路径一般会写在 package.json 中。webpack 会根据 mainFields 中配置去决定优先采用哪份代码,只会使用找到的第一个。

优化模块的解析时间

  • 优化 module.noParse 配置
    module.noParse 配置项可以让 webpack 忽略对部分没采用模块化的文件的递归处理

  • 优化 loader 配置
    使用 loader 时可以通过 test、include、exclude 三个配置项来命中 loader 要应用规则的文件;

  • 使用IgnorePlugin
    webpack 的内置插件,作用是忽略第三方包指定目录。例如: moment (2.24.0版本) 会将所有本地化内容和核心功能一起打包,我们就可以使用 IgnorePlugin 在打包时忽略本地化内容。

  • 使用external
    如果我们想引用一个库,但是又不想让webpack打包,并且又不影响我们在程序中以CMD、AMD或者window/global全局等方式进行使用,那就可以通过配置externals。这个功能主要是用在创建一个库的时候用的,但是也可以在我们项目开发中充分使用。

优化二次打包时间

  • 使用cache-loader
    在性能开销比较大的 loader 之前添加此 loader,以将结果缓存到磁盘

  • 使用 DllPlugin DllReferencePlugin 以及 AutoDllPlugin
    将项目中不经常变动的模块预先打包, 第二次就不会对这些模块进行打包压缩了

  • 使用HardSourceWebpackPlugin
    HardSourceWebpackPlugin 为模块提供中间缓存,缓存默认的存放路径是: node_modules/.cache/hard-source。已经取代了DLLPlugin

多进程打包

  • 使用HappyPack
    可以将原有的 webpack 对 loader 的执行过程,从单一进程的形式扩展为多进程的模式,从而加速代码构建。
  • 使用thread-loader
    把这个 loader 放在其他 loader 之前,放置在其之后的 loader 就会在一个单独的 worker【worker pool】池里运行,一个 worker 就是一个 Node.JS 进程,每个单独进程处理时间上限为 600ms,各个进程的数据交换也会限制在这个时间内。

webpack自身的优化

  • tree-shake
  • Scope Hoisting

原文链接:https://blog.youkuaiyun.com/qq_40968685/article/details/109411935

管理后台HTML页面是Web开发中一种常见的实践,主要用于构建企业或组织内部的管理界面,具备数据监控、用户管理、内容编辑等功能。本文将探讨一套美观易用的二级菜单目录设计,帮助开发者创建高效且直观的后台管理系统。 HTML5:作为超文本标记语言的最新版本,HTML5增强了网页的互动性和可访问性,提供了更多语义元素,如<header>、<nav>、<section>、<article>等,有助于清晰地定义网页结构。在管理后台中,HTML5可用于构建页面布局,划分功能区域,并集成多媒体内容,如图像、频和视频。 界面设计:良好的管理后台界面应具备清晰的导航、一致的布局和易于理解的图标。二级菜单目录设计能够有效组织信息,主菜单涵盖大类功能,次级菜单则提供更具体的操作选项,过展开和折叠实现层次感,降低用户认知负担。 CSS:CSS是用于控制网页外观和布局的语言,可对HTML元素进行样式设置,包括颜色、字体、布局等。在管理后台中,CSS能够实现响应式设计,使页面在不同设备上具有良好的显示效果。借助CSS预处理器(如Sass或Less),可以编写更高效、模块化的样式代码,便于维护。 文件结构: guanli.html:可能是管理页面的主入口,包含后台的主要功能和布局。 xitong.html:可能是系统设置或配置页面,用于管理员调整系统参数。 denglu.html:登录页面,常包含用户名和密码输入框、登录按钮,以及注册或忘记密码的链接。 image文件夹:存放页面使用的图片资源,如图标、背景图等。 css文件夹:包含后台系统的样式文件,如全局样式表style.css或按模块划分的样式文件。 响应式设计:在移动设备普及的背景下,管理后台需要支持多种屏幕尺寸。过媒体查询(Media Queries)和流式布局(Fluid Grids),可以确保后台在桌面、平板和手机上都能良好展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值