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

zqdjd7g9  于 2022-10-24  发布在  Angular
关注(0)|答案(2)|浏览(202)

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

w51jfk4q

w51jfk4q1#

捆绑从何而来?

出于业绩原因,我们开始捆绑我们的资产。

  • HTTP1在单个连接上支持有限的请求。为每一项资产建立联系会扼杀业绩。
  • 我们开始逐页捆绑,以通过更有效的缓存提高性能。
  • 我们能够将指纹添加到它并将其上传到CDN。(首页231434.js)。因此,我们能够通过对接来部署我们的应用程序。
  • 捆绑还可以帮助我们更多地减少页面大小,因为捆绑者了解整个系统。这意味着它可以移除不用的东西,并更容易缩小东西。没有捆绑器,你不能轻易做到这一点。
  • 此外,捆绑商正在使用转移器。浏览器并不总是能够运行我们编写的代码,比如TypeScrip和CoffeeScrip。捆绑商可以很容易地将这些代码转换成捆绑包。

我们还需要吗?

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

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

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

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

我仍然会选择捆绑销售。
在我的公司,我们使用容器编排系统来控制我们停靠的应用程序。我们可能会同时运行多个版本。对我们来说,在捆绑并上传到CDN的同时为文件创建指纹仍然更有效。我们也在尝试使用prefetchingpreloading。CDN帮助我们减少了其他国家游客的装载时间。此外,我们还从服务人员那里获得支持,以便在需要时按页更换资产。
所以实际上现在它只是基于你的项目。不再有太多的性能原因。

kiz8lqtg

kiz8lqtg2#

如何创建bundle.js

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

bundle.js的需求

1.模块绑定器会对项目进行分析,找出依赖关系,在加载网页时只获取需要的包。
1.与模块捆绑器一起,它将编译一些浏览器无法阅读的语言,如TypeScrip、Less等。

如果不使用怎么办

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

相关问题