为什么以及在哪里我们都需要bundle.js



Node.js/Angular/Rect应用程序需要bundle.js吗?如果在构建和部署应用程序时未使用它,该怎么办?

捆绑从何而来

出于性能原因,我们开始捆绑资产。

  • HTTP1支持单个连接上的有限请求。为每个资产创建连接会影响性能
  • 我们开始逐页捆绑,以通过更有效的缓存来提高性能
  • 我们能够将指纹添加到其中,并将其上传到CDN。(主页。231434.js(。因此,我们能够通过对应用程序进行码头化来部署它
  • 捆绑还可以帮助我们更多地减少页面大小,因为捆绑者了解整个系统。这意味着它可以删除未使用的东西,并更容易地缩小东西。没有捆扎工你是做不到的
  • 此外,捆扎商也在使用运输工具。浏览器不可能总是能够运行我们编写的代码,比如Typescript和CoffeeScript。捆绑程序可以很容易地将这些代码转换成捆绑包

我们还需要它吗

如今,捆绑资产的情况发生了很大变化。

  • 首先,现在几乎所有浏览器都支持HTTP/2。因此,我们可以在同一连接上请求多个文件。因此不再需要捆绑。此外,我们还有http/2服务器推送
  • React、Angular和Vue等库在大小上要有效得多。它们可以很容易地从支持gzip的源代码下载到页面上

这些就是我们不再需要捆绑的原因。

但根据您的项目,我们可能仍需要捆绑。这才是真正的真相

我还是会选择捆绑。


在我的公司,我们使用容器编排系统来控制我们的码头化应用程序。我们可能同时运行多个版本。在捆绑文件并将其上传到CDN的同时为文件创建指纹对我们来说仍然更有效。此外,我们正在尝试使用预取和预加载。CDN帮助我们减少其他国家/地区访问者的加载时间。此外,我们还得到了服务人员的支持,以便在需要时按页面更改资产。

所以实际上现在它只是基于你的项目。不再有太多性能原因。

如何创建bundle.js现在,我们通常使用像webpack这样的打包工具来打包js、css或其他文件。使用适当的加载程序,webpack会将文件打包成许多捆绑文件,浏览器就会理解它们。

对bundle.js的需求

  1. 模块绑定器将分析项目,找到依赖关系,并仅在加载网页时获取必要的包
  2. 使用模块bundler,它将编译一些浏览器无法读取的语言,如typescript、less等

如果不使用怎么办

模块打包器不是web项目所必需的,但它将提高网页的性能。如果不使用模块捆绑器,web在加载时就不能只获取必要的捆绑包。因此加载时间会更长。

最新更新