为什么需要在所有地方以及bundle.js?

时间:2018-12-09 07:08:29

标签: javascript angularjs node.js reactjs

Node.js / Angular / React应用程序对bundle.js有何需求?如果在构建和部署应用程序时不使用该怎么办?

2 个答案:

答案 0 :(得分:3)

捆绑来自哪里?

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

  • HTTP1在单个连接上支持有限的请求。为每种资产创建连接会降低性能。
  • 我们开始逐页捆绑事物,以通过更有效的缓存提高性能。
  • 我们能够在其中添加指纹并将其上传到CDN。 (home-page.231434.js)。因此,我们能够通过对它进行泊坞化来部署我们的应用程序。
  • 捆绑软件还可以帮助我们减少页面大小,因为捆绑软件知道整个系统。这意味着它可以删除未使用的东西并简化它们。如果没有捆绑器,就无法做到这一点。
  • 此外,打包机正在使用翻译器。浏览器并非总是能够运行我们编写的代码,例如Typescript,CoffeeScript。捆绑软件可以轻松地将这些代码转换为捆绑软件。

我们还需要吗?

如今,事情发生了很大变化,就像我们捆绑资产一样。

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

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

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

我仍然会捆绑。


在我的公司中,我们正在使用容器编排系统来控制我们的docker化应用程序。我们可能同时运行多个版本。在捆绑时创建文件指纹并将其上传到CDN对我们来说仍然更加有效。另外,我们正在尝试使用prefetchingpreloading。 CDN帮助我们减少了其他国家/地区访客的加载时间。 而且,当需要逐页更改资产时,我们也获得了服务人员的支持以更改资产。

实际上,如今,它只是基于您的项目。不再有太多的性能原因。

答案 1 :(得分:0)

如何创建bundle.js

如今,我们通常使用webpack之类的打包工具来打包js,css或其他文件。使用适当的加载程序,webpack会将文件打包为许多捆绑文件,浏览器会理解它们。

需要bundle.js

  1. 模块捆绑器将分析项目,查找依赖关系,并仅在加载网页时获取必要的包。
  2. 并且使用模块捆绑器,它将编译浏览器无法读取的一些文字,例如typescript,less等。

如果不使用怎么办

模块捆绑器对于Web项目不是必需的,但是它将提高网页的性能。如果不使用模块捆绑器,则Web不仅无法在加载时获取必要的捆绑包,因此加载时间会更长。