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

Ash*_*aye 3 javascript node.js angularjs reactjs

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

Ahm*_*ven 5

捆绑来自哪里?

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

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

我们还需要吗?

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

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

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

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

我仍然会捆绑。


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

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


Roo*_*oot 0

如何创建bundle.js

\n\n

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

\n\n

需要bundle.js

\n\n
    \n
  1. 模块捆绑器将分析项目,查找依赖关系,并在加载网页时仅获取必要的包。
  2. \n
  3. 并且通过模块捆绑器,它会编译一些浏览器无法读取的语言,例如 typescript \xe3\x80\x81less 等。
  4. \n
\n\n

如果不使用怎么办

\n\n

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

\n