Webpack 之 runtime 与 manifest

发布于 2025-02-02 13:57:14 字数 1094 浏览 7 评论 0

由来

在使用 webpack 构建的典型应用程序或站点中,有三种主要的代码类型:

  • 你或你的团队编写的源码。
  • 你的源码会依赖的任何第三方的 library 或 "vendor" 代码。
  • webpack 的 runtime 和 manifest,管理所有模块的交互。

runtime

在浏览器运行过程中,webpack 用来连接模块化应用程序所需的所有代码,包括

  • 在模块交互时,连接模块所需的加载和解析逻辑
  • 已经加载到浏览器中的连接模块逻辑,以及尚未加载模块的延迟加载逻辑

manifest(载货单)

一旦你的应用在浏览器中以 index.html 文件的形式被打开,一些 bundle 和应用需要的各种资源都需要用某种方式被加载与链接起来。
在经过打包、压缩、为延迟加载而拆分为细小的 chunk 这些 webpack 优化 之后,你精心安排的 /src 目录的文件结构都已经不再存在。
所以 webpack 如何管理所有所需模块之间的交互呢?这就是 manifest 数据用途的由来……

  • 当 compiler 开始执行、解析和映射应用程序时,它会保留所有模块的详细要点 --- 这个数据集合称为 "manifest"
  • 当完成打包并发送到浏览器时,runtime 会通过 manifest 来解析和加载模块

无论你选择哪种 模块语法,那些 import 或 require 语句现在都已经转换为 webpack_require 方法,此方法指向模块标识符(module identifier)。
通过使用 manifest 中的数据,runtime 将能够检索这些标识符,找出每个标识符背后对应的模块。

// 我们可以使用 webpack-manifest-plugin 查看项目的 manifest
{
  "dist/batman.js": "dist/batman.1234567890.js",
  "dist/joker.js": "dist/joker.0987654321.js"
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

归属感

暂无简介

文章
评论
20981 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文