webpack和Code-Splitting

2023-12-02 07:32
文章标签 code webpack splitting

本文主要是介绍webpack和Code-Splitting,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

webpack和Code-Splitting

  • Code-Splitting代码分割初体验

Code-Splitting代码分割初体验

在这里插入图片描述

  • webpack默认将所有的依赖文件(包含第三方包中的代码)统一导包到输出文件中

  • 前提:
    a: 入口文件中 第三方包模块1MB和业务逻辑代码1Mb,不考虑压缩,打包生成的main.js为2Mb
    b: 在浏览器用户访问我们的index.html文件,会首先加载2Mb的main.js文件

  • 缺点

    1. 打包文件会很大,加载时间会很长
    2. 第三方包模块(lodash)我们是不会修改库里面的内容的,但业务逻辑代码,当我们改了业务逻辑代码,用户重新访问页面,又要加载2Mb的内容(main.js)
import _ from "lodash" // 第三方包模块
// 修改业务逻辑代码
const str = _.join(["1", "2", "3"], "***") //业务逻辑代码
  • 改进原理分析;
    a: 将第三方包模块和业务逻辑代码分开打包成不同的js文件=>生成lodash(第三方包模块)和main.js(业务逻辑代码)
    b: 当业务逻辑代码发生变化的时,用户重新访问页面,只需加载1Mb的内容(main.js),因为在上一次访问该页面的时候,浏览器缓存了(lodash.js),loader.js没有发生变化,直接从浏览器缓存中取,不会从服务器再次请求loader.js资源
    c:用户初次访问页面的时候,依然要从服务器请求loadsh.js和main.js两个资源,然后交给浏览器缓存起来,第二次访问时,只是lodash.js没有发生变化,直接从浏览器缓存中取,main.js由于业务逻辑代码发生了变化而变化,该资源(main.js)从服务器请求得到
  • 改进方法: Code-Splitting代码分割
  • webpack配置选项 optimization.splitChunks=>告诉webpack要进行代码分割
 optimization: {splitChunks: {chunks: "all"}},

在这里插入图片描述

这篇关于webpack和Code-Splitting的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/444478

相关文章

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

VS Code中的Python代码格式化插件示例讲解

《VSCode中的Python代码格式化插件示例讲解》在Java开发过程中,代码的规范性和可读性至关重要,一个团队中如果每个开发者的代码风格各异,会给代码的维护、审查和协作带来极大的困难,这篇文章主... 目录前言如何安装与配置使用建议与技巧如何选择总结前言在 VS Code 中,有几款非常出色的 pyt

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Debugging Lua Project created in Cocos Code IDE creates “Waiting for debugger to connect” in Win-7

转自 I Installed Cocos Code IDE and created a new Lua Project. When Debugging the Project(F11) the game window pops up and gives me the message waiting for debugger to connect and then freezes. Also a

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

VS Code 调试go程序的相关配置说明

用 VS code 调试Go程序需要在.vscode/launch.json文件中增加如下配置:  // launch.json{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information,

code: 400, msg: Required request body is missing 错误解决

引起这个错误的原因是,请求参数按照get方式给。 应该给json字符串才对 补充: 1. @RequestBody String resource 加@RequestBody必须给json字符串,否则会报错400,记如标题错误。 不加这个的进行请求的话,其实post和get就没有什么区别了。 2. List<String> indexCodes=(List<String>)json.

iOS项目发布提交出现invalid code signing entitlements错误。

1、进入开发者账号,选择App IDs,找到自己项目对应的AppId,点击进去编辑, 2、看下错误提示出现  --Specifically, value "CVYZ6723728.*" for key "com.apple.developer.ubiquity-container-identifiers" in XX is not supported.-- 这样的错误提示 将ubiquity

解决服务器VS Code中Jupyter突然崩溃的问题

问题 本来在服务器Anaconda的Python环境里装其他的包,装完了想在Jupyter里写代码验证一下有没有装好,一运行发现Jupyter崩溃了!?报错如下所示 Failed to start the Kernel. ImportError: /home/hujh/anaconda3/envs/mia/lib/python3.12/lib-dynload/_sqlite3.cpython-

Behind the Code:与 Rakic 和 Todorovic 对话 OriginTrail 如何实现 AI 去中心化

原文:https://www.youtube.com/watch?v=ZMuLyLCtE3s&list=PLtyd7v_I7PGnko80O0LCwQQsvhwAMu9cv&index=12 作者:The Kusamarian 编译:OneBlock+ 随着人工智能技术的飞速发展,一系列前所未有的挑战随之而来:模型的衰退与互联网的潜在威胁愈发明显。AI 的增长曲线可能因训练过程中的瓶颈而趋于平