【问题标题】:MEAN.js - Should all js files be merged when deployedMEAN.js - 部署时是否应该合并所有 js 文件
【发布时间】:2016-08-02 07:27:21
【问题描述】:

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

几个问题

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

编辑

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

文件夹结构

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

【问题讨论】:

标签: angularjs meanjs


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 所以我只是运行 grunt build 然后部署到 Heroku?
  • 这与将配置 NODE_ENV 生产添加到 Heroku 相同吗?
  • 如果有任何帮助,URL 就在这里saveme.ie 似乎现在在生产模式下 lod 71 个 js 文件而不是 69 个
  • 据我所见,您已经缩小了第 3 方 js 文件,但是您的自定义 js 文件(如角度控制器、服务等)并未连接到一个名为 application.min.js 的文件中。您是否更改了文件所在的目录?检查您的config/assets/default.js 并查看您的文件是否按照这些模式列出。
  • 即:js: ['modules/core/client/app/config.js', 'modules/core/client/app/init.js', 'modules/*/client/*.js', 'modules/*/client/**/*.js']
猜你喜欢
  • 2011-12-01
  • 1970-01-01
  • 2016-11-28
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多