我有一个MEAN.js应用程序的问题,因为它加载速度很慢,从检查中我可以看到它在70个不同的文件中加载js。
几个问题
为什么有这么多js文件分开?他们是不是可以合并成一个并像YSlow建议那样更快地服务?
编辑
'modules/*/client/*.js',
'modules/*/client/**/*.js'
文件夹结构
modules/savings/client/controllers/client.controller.js
答案 0 :(得分:1)
MEAN.js涵盖了这一特定方面。实际上,如果您仅使用grunt
命令运行应用程序,该应用程序将开始在开发环境中运行,因此js文件(来自第三方库或甚至您的自定义js文件的文件)不会连接也不会连接精缩。这有助于您在调试时。然而,就性能而言,这对于生产中的应用来说显然不太好。
如果使用命令grunt prod
,您的应用程序将开始以生产模式运行,因此您的自定义js文件将被连接并进行连接。第三方库文件不会被连接,但grunt
将使用它们的缩小版本。
您可以分别在config/assets/development.js
和config/assets/production.js
中查看将为开发和生产模式加载哪些资产。
此外,如果您想查看grunt
和grunt prod
任务之间的差异,可以查看gruntfile.js
。
注1:我提到的关于grunt
的命令也可以与gulp
一起使用,因为MEAN.js同时具有gruntfile.js
和{{{} 1}}已定义。
注意2:如果在使用gulpfile.js
并且仍然加载了这么多文件时,这意味着您正在使用大量第三方库和可能的解决方案对于这种情况,将第三方库文件连接到grunt prod
文件中,但是这样做可能会遇到麻烦,例如像AngularJS这样的库需要使用特定订单加载文件。如果您编辑gruntfile以实现此类任务,则需要格外小心。