webpack 中的 module、chunk、bundle 分别是什么?

2024-02-09

我不太理解模块、块和捆绑等概念。

{
  entry: {
    foo: ['webpack/hot/only-dev-server.js', './src/foo.js'],
    bar: ['./src/bar.js']
  },
  output: {
    path: './dist',
    filename: '[name].js'
  }
}

上述配置中,有only-dev-server.js and foo.js两个块?是foo and bar两个捆绑?是foo.js and bar.js两个模块?


经过一天的研究后,我想提供一个我认为稍微更准确的答案。 webpack 团队发布了一个有用的(并且很难注意到)glossary https://webpack.js.org/glossary/.

我认为关于块和包的困惑在于,这些术语可以指代相同的事物,但应该在 webpack 中的不同点使用process.

webpack 术语定义

Module:离散的功能块提供比完整程序更小的表面积。编写良好的模块提供了可靠的抽象和封装边界,从而构成了连贯的设计和明确的目的。

Chunk:这个 webpack 特定术语在内部使用来管理捆绑process。捆绑包由块组成,块有多种类型(例如条目和子项)。通常,块直接与输出包相对应,但是,有些配置不会产生一对一的关系。

Bundle:捆绑包由许多不同的模块生成,包含最终版本的源文件已经经历过加载和编译过程。

(重点是我加上的)

解释

我将差异总结为:块是一组模块在 webpack 进程中,一个束是一个发出的块或一组块.

在讨论 webpack 进程时,这种区别很有用当它们正在发生时。由于模块被分块在一起,它们可能会发生显着变化(特别是在插件处理期间),因此此时将它们称为捆绑包是不准确的,这些块甚至可能不会在最终输出中作为捆绑包发出!然后,在 webpack 完成后,有一个术语来指代所有发出的最终文件(包)会很有用。

你的例子

所以对于你的例子

{
  entry: {
    foo: ["webpack/hot/only-dev-server.js","./src/foo.js"],
    bar: ["./src/bar.js"]
  },
  output: {
    path: "./dist",
    filename: "[name].js"
  }
}
  • Modules:“webpack/hot/only-dev-server.js”、“./src/foo.js”、“./src/bar.js”(+这些入口点依赖的任何其他模块!)
  • Chunks: 富,酒吧
  • Bundles: 富,酒吧

在您的示例中,您的块和包具有 1:1 关系,但情况并非总是如此。例如,添加源映射意味着块和包之间存在 1:2 的关系。

资源

  • webpack 术语表 https://webpack.js.org/glossary/
  • webpack stats 数据文档 https://webpack.js.org/api/stats/
  • 问题 970 - 概念 - 捆绑与块 https://github.com/webpack/webpack.js.org/issues/970
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webpack 中的 module、chunk、bundle 分别是什么? 的相关文章

随机推荐

  • java-8 过滤列表而不创建新列表

    我正在寻找使用简单的 lambda 来过滤 Java 8 中的列表的最干净的方法Predicate 无需创建新列表 特别是 该解决方案不合适 因为toList 返回一个新的List List
  • 回滚 Laravel 中的一项特定迁移

    I want 仅回滚 Rolled back 2015 05 15 195423 alter table web directories I run php artisan migrate rollback 我的 3 个迁移正在回滚 Rol
  • PHP Sort 函数用于对对象数组进行排序

    我有一个充满同一类对象的数组 例如 我想通过可选对象字段对该数组进行排序 case gt ID or case gt Sender 是否有内置的 array sort 函数可以执行此操作 或者我必须自己编写此排序函数 答案不必详细解释 这更
  • 沉默的例外,

    我在 64 位中遇到过这个奇怪的静默异常问题 到底是什么原因导致这种行为呢 我想了解为什么会发生这种情况以及推荐的解决方案是什么 消失的 OnLoad 异常 http blog paulbetts org index php 2010 07
  • 如何处理 IncompleteRead: 在 python 中

    我正在尝试从网站获取一些数据 然而它返回了我incomplete read 我试图获取的数据是一组巨大的嵌套链接 我在网上做了一些研究 发现这可能是由于服务器错误 之前的分块传输编码完成 达到预期大小 我还找到了上述问题的解决方法link
  • Nifi:如何使 ListenHTTP 与 SSL 配合使用

    客观的 由于 Nifi 通过 HTTP 与其他工具集成 我必须ListenHTTP处理器面向公众 所有 3 个环境上的 API 网关对我来说太贵了 所以我关闭了所有虚拟机入口端口 除了ListenHTTP 对于外部网络 Issue 我的配置
  • 从终端打开 iPhone 应用程序

    是否可以从终端打开 iPhone 应用程序或 Xcode 项目 我已经尝试过 open path to project app 但这会返回警告并由于启动模拟器时出现图像加载错误而意外退出 有没有人有什么建议 您无法从终端启动 iPhone
  • 缓存图像的 CORS 策略

    在 chrome 22 和 safari 6 中 使用启用 CORS 的 S3 存储桶从 s3 加载图像以在画布中使用 以提取为主要目的 代码如下 img src http s3 bob jpg In the javascript exec
  • 重新访问变量 X 的无效类型(列表),其中 X 是日期类

    今天早些时候 我关注了以下主题并看到了答案 变量 X 的类型 列表 无效 其中 X 是日期类 https stackoverflow com questions 27606380 invalid type list for variable
  • Google Cloud dev_appserver.py 无法在本地托管 Laravel 项目

    我正在运行 Laravel 5 4 项目 并托管在 google cloud 项目下 为了测试相同的内容 我使用了dev appserver py app yaml runtime php55它启动程序但抛出显示的错误 Warning re
  • Parallel.ForEach 内存使用量持续增长

    public string SavePath get set I files public void DownloadList List
  • 如何将matlab中的绘图设置为特定大小?

    一般来说 我希望将相当复杂的 x y 图 大量重叠曲线 绘制为 A3 格式 因此 A4 210x297 A3 A4 2 420 x 297 10mm each side 400 x 277 size of desired plot wind
  • 如何更改 Google 地图标记上的图标

    我想在 Google 地图上使用我的自定义图标 并在代码中添加了图标 url 但它仍然没有反映在地图上 谁能建议一下 我在这里缺少什么 为什么添加图标 url 后图标没有改变 http google maps icons googlecod
  • 减速器中的 React-redux Spread 运算符返回错误“意外令牌”

    我遵循 Dan Abramov 的代码https github com tayiorbeii egghead io redux course notes blob master 08 Reducer Composition with Arr
  • 有什么理由只传递第一个元素而不是整个数组? [复制]

    这个问题在这里已经有答案了 好的 昨天我有一位同事来到我的办公室 问我一个关于他必须使用的 Fortran 代码的问题 基本上 他使用的代码有一个长的多维数组 以及一个需要这个长的多维数组作为参数的子例程 但是 调用该子例程的代码仅传递数组
  • CSS 中缩放渐变背景

    第一次提问 请对我宽容一些 我正在尝试为使用 JQuery Mobile 的网络应用程序制作背景渐变 我对 CSS 和 UI 设计一无所知 我希望渐变填充整个页面的空间 现在 它填充到原始窗口的大小 但向下滚动时会 切断 大多数建议都指向这
  • 如何在 Android Native Code 中使用 Keystore?

    我需要加密由用 C 编写的 android 本机服务创建的一些文件 我必须使用密钥库 但我不知道如何使用 有什么库或者文档吗 我知道该线程很旧 但也许它会对将来的某人有所帮助 以下提示参考 Android Keystore v3 和 v4
  • javascript/dashcode:检查互联网连接

    我正在开发一个通过ajax从互联网获取数据的小部件 如果该小部件无法连接到服务器 我想提供一条错误消息 我正在使用 jquery 的 ajax 对象执行请求 该对象提供了错误回调函数 但是当没有互联网连接时 仅当发出请求但因其他原因失败时才
  • AngularJS $http.post如何将json数据设置到请求正文中

    我正在尝试将带有 json 数据的 post 请求发送到服务器 但似乎 angularJS http post 方法没有将数据设置到正文中 我怎样才能让它将数据设置到正文中 远程服务器使用asp net webapi实现 将从body中读取
  • webpack 中的 module、chunk、bundle 分别是什么?

    我不太理解模块 块和捆绑等概念 entry foo webpack hot only dev server js src foo js bar src bar js output path dist filename name js 上述配