Angularjs:ocLazyLoad 与 Requirejs

Angularjs: ocLazyLoad vs Requirejs

我正在做一个大的 Angluar 项目,显然我们需要一种方法来延迟加载我们的脚本。

我以前用过require.js,它非常好,但问题是在我们连接和缩小我们的文件之后,我们得到了一个 1.5M 的 js 文件。

所以我刚遇到 OcLazyload,它看起来很有希望,但我在网上看到了很多同时使用 require 和 ocLazyLoad 的例子,我有点困惑为什么你会想要同时使用两者.他们不是在做同样的事情吗?

您需要 ocLazyLoad 和 RequireJS,因为您现在要处理两个独立的模块概念 - 您的 javascript 模块和 angular 内部模块。

在最初的 bootstrap 之后,angularjs 不再允许注册新的模块和组件,例如指令和控制器(至少不能使用标准方式)。

RequireJS 仅加载 javascript 个文件,但它不会在此新代码中注册新的 angular 模块和组件

ocLazyLoad 的作用是允许您使用第三方模块加载器(如 RequireJS)加载其他文件,更重要的是 - 它在 angular 中注册延迟加载代码中的新模块和组件。

总而言之 - 您可以仅使用 RequireJS 延迟加载代码,但不能仅使用 RequireJS 加载 angular 模块和组件。需要额外的工作,例如 ocLazyLoad 执行的这项工作。

您可以将 RequireJS 与 ocLazyLoad 一起使用,但我不推荐它,这是可能的,因为人们要求我这样做并且很容易集成。 您不需要 RequireJS,因为 ocLazyLoad 包含自己的 js/css/templates 文件加载器,它可以加载任何类型的文件,而不仅仅是 angular 个模块。

如果你想延迟加载 Angular 模块,你需要一个库来用 Angular 注册它们(或者等待 Angular 1.5 允许你这样做)。

底线是:您可以将 RequireJS 与 ocLazyLoad 一起使用,或者只使用 ocLazyLoad(推荐),但不能只使用 RequireJS