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.js
和 config/assets/production.js
中查看将为开发模式和生产模式加载哪些资产。
此外,如果您想了解 grunt
和 grunt prod
任务之间的区别,您可以查看 gruntfile.js
.
注1:我提到的关于grunt
的命令也可以与gulp
一起使用,因为MEAN.js既有gruntfile.js
和 gulpfile.js
定义。
注意 2: 如果在您使用 grunt prod
时仍然有很多文件正在加载,这意味着您正在使用大量的第 3 方库,针对这种情况的一个可能解决方案是将第 3 方库文件连接到一个 vendor.js
文件中,但是在这样做时您可能 运行 遇到麻烦,例如像 AngularJS 这样的一些库需要这些文件以特定顺序加载。如果您编辑 g运行t 文件来执行此类任务,则需要格外小心。
我有一个 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.js
和 config/assets/production.js
中查看将为开发模式和生产模式加载哪些资产。
此外,如果您想了解 grunt
和 grunt prod
任务之间的区别,您可以查看 gruntfile.js
.
注1:我提到的关于grunt
的命令也可以与gulp
一起使用,因为MEAN.js既有gruntfile.js
和 gulpfile.js
定义。
注意 2: 如果在您使用 grunt prod
时仍然有很多文件正在加载,这意味着您正在使用大量的第 3 方库,针对这种情况的一个可能解决方案是将第 3 方库文件连接到一个 vendor.js
文件中,但是在这样做时您可能 运行 遇到麻烦,例如像 AngularJS 这样的一些库需要这些文件以特定顺序加载。如果您编辑 g运行t 文件来执行此类任务,则需要格外小心。