使用require.js。它在管理大型 JavaScript 应用程序中的依赖项方面非常强大。
AMD
异步模块定义 ( AMD ) API 指定了一种用于定义模块的机制,以便可以异步加载模块及其依赖项。这特别适用于同步加载模块会导致性能、可用性、调试和跨域访问问题的浏览器环境。
定义.amd 属性
为了清楚地表明全局定义函数(脚本 src 浏览器加载所需)符合 AMD API,任何全局定义函数都应该有一个名为“amd”的属性,其值为一个对象。这有助于避免与任何其他可能定义了不符合 AMD API 的 define() 函数的现有 JavaScript 代码发生冲突。
此时未指定 define.amd 对象内的属性。它可以由想要通知实现支持的基本 API 之外的其他功能的实现者使用。
具有对象值的 define.amd 属性的存在表明符合此 API。如果有另一个版本的 API,它可能会定义另一个属性,如 define.amd2,以指示符合该 API 版本的实现。
如何为允许在环境中加载多个版本的模块的实现定义它的示例:
define.amd = {
multiversion: true
};
最低定义:
define.amd = {};
管理依赖文件的顺序
RequireJS 使用异步模块加载 (AMD)来加载文件。每个依赖模块将按照给定的顺序通过异步请求开始加载。即使考虑了文件顺序,由于异步性质,我们不能保证第一个文件在第二个文件之前加载。因此,RequireJS 允许我们使用 shim 配置来定义需要以正确顺序加载的文件序列。让我们看看如何在 RequireJS 中创建配置选项。
requirejs.config({
shim: {
'source1': ['dependency1','dependency2'],
'source2': ['source1']
}
});
RequireJS 允许我们使用 config() 函数提供配置选项。它接受一个名为 shim 的参数,我们可以使用它来定义强制的依赖序列。您可以在RequireJS API 文档中找到完整的配置指南。
参考 1) http://www.sitepoint.com/understanding-requirejs-for-effective-javascript-module-loading/
2) https://github.com/amdjs/amdjs-api/wiki/AMD