AMD 模块定义规范
异步模块定义(AMD)的编程接口提供了定义模块,及异步加载该模块的依赖的机制。
它非常适合于使用于浏览器环境,浏览器的同步加载模块机制会带来性能,可用性,调试和跨域访问的问题。
API 说明
define() 函数
本规范只定义了一个函数 "define",它是全局变量。函数的描述为:
define(id?, dependencies?, factory);
名字
第一个参数,id,是个字符串,它指的是定义中模块的名字,这个参数是可选的。如果没有提供该参数,模块的名字应该默认为模块加载器请求的指定脚本的名字。如果提供了该参数,模块名必须是“顶级”的和绝对的(不允许相对名字)。
模块名的格式
模块名用来唯一标识定义中模块,它们同样在依赖性数组中使用。AMD的模块名规范是CommonJS模块名规范的超集。引用如下:
- 模块名是用正斜杠分割的有意义单词的字符串
- 单词须为驼峰形式,或者".",".."
- 模块名不允许文件扩展名的形式,如“.js”
- 模块名可以为 "相对的" 或 "顶级的"。如果首字符为“.”或“..”则为相对的模块名
- 顶级的模块名从根命名空间的概念模块解析
- 相对的模块名从 "require" 书写和调用的模块解析
CommonJS模块id属性常被用来JavaScript模块。
如果Loader-Plugins