MEAN.js - 部署时是否应合并所有 js 文件

MEAN.js - Should all js files be merged when deployed

我有一个 MEAN.js 应用程序的问题,因为它的加载速度非常慢,并且从检查中我可以看到它在 70 个不同的文件中加载 js。

几个问题

为什么这么多js文件分开了?不能像 YSlow 建议的那样将它们合并为一个并更快地提供服务吗?

编辑

 'modules/*/client/*.js',
 'modules/*/client/**/*.js'

文件夹结构

modules/savings/client/controllers/client.controller.js

MEAN.js 涵盖了该特定方面。事实上,如果您 运行 您的应用程序仅使用 grunt 命令,该应用程序将在开发环境中启动 运行ning,因此 js 文件(来自第 3 方库的文件甚至您的自定义 js 文件)不会连接也不会缩小。这有助于您调试。然而,就性能而言,这显然对生产中的应用不利。

如果您使用命令 grunt prod,您的应用程序将在生产模式下启动 运行ning,因此您的自定义 js 文件将被连接和压缩。第 3 方库文件不会串联,但 grunt 将使用它们的缩小版本。

您可以分别在 config/assets/development.jsconfig/assets/production.js 中查看将为开发模式和生产模式加载哪些资产。

此外,如果您想了解 gruntgrunt prod 任务之间的区别,您可以查看 gruntfile.js.

注1:我提到的关于grunt的命令也可以与gulp一起使用,因为MEAN.js既有gruntfile.jsgulpfile.js 定义。

注意 2: 如果在您使用 grunt prod 时仍然有很多文件正在加载,这意味着您正在使用大量的第 3 方库,针对这种情况的一个可能解决方案是将第 3 方库文件连接到一个 vendor.js 文件中,但是在这样做时您可能 运行 遇到麻烦,例如像 AngularJS 这样的一些库需要这些文件以特定顺序加载。如果您编辑 g运行t 文件来执行此类任务,则需要格外小心。