AMD规范中模块id的命名规则
AMD 即 Asynchronous Module Definition, 中文是“ 异步模块定义”的意思。
AMD 规范制定了定义模块的规则,这样模块和模块的依赖可以被异步加载。
AMD 规范只定义了一个函数且为全局变量:define(id?,dependencies?,factory)
这里我们主要整理下id的命名规则.
id 一个字符串,定义的是模块的名字,这个参数是可选的。如果没有提供该参数,模块的名字应该默认为模块加载器请求的指定的脚本名字。如果提供了该参数,则必须是顶级的或相对的。
AMD的模块命名规范是CommonJS模块名规范的超集。引用如下:
- 模块名是由一个或多个的正斜杠(/)为分隔符拼接而成的字符串;
- 单词须为驼峰式形式或者".","..";
- 模块名不允许文件扩展名的形式,如.js;
- 模块名可以是相对的或顶级的。如果首字母为"."或者".."则为相对的;
- 顶级的模块名从根命名空间的概念模块开始解析;
- 相对的模块名从require书写和调用的模块开始解析。
相对模块名解析示例:
- 如果模块"a/b/c"请求"../d",则解析为"a/d"
- 如果模块"a/b/c"请求"./e",则解析为"a/b/e"
requireAPI
介绍: https://github.com/amdjs/amdjs-api/wiki/require
AMD规范中文版:https://github.com/amdjs/amdjs-api/wiki/AMD-(%E4%B8%AD%E6%96%87%E7%89%88)
目前,实现AMD的库有RequireJS 、curl 、Dojo 、Nodules
等。