本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/07/22/RequireJS%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%9D%97%E8%B7%AF%E5%BE%84%E8%A7%A3%E6%9E%90/
摘要
本文主要讲述了:
- 解析机制
- 路径映射
- 特殊情况
正文
解析机制
默认情况下,RequireJS 会把模块 Id 解析为路径(并自动添加.js
后缀),然后和baseUrl
进行路径合并,进而得到绝对路径。
示例:
learn_requirejs/index.html
1 |
|
learn_requirejs/js/main.js
1 | require(['lib/demo'], function (demo) { |
learn_requirejs/js/lib/demo.js
1 | define({ |
在这个示例中,lib/demo
的解析过程如下:
- baseUrl 为
js
- 模块 Id 为
lib/demo
,解析为路径得到lib/demo.js
- 路径合并得到
js/lib/demo.js
路径映射
RequireJS 支持在paths
里手动配置模块 Id 和路径的映射关系。
示例:
1 |
|
learn_requirejs/js/main.js
1 | require.config({ |
learn_requirejs/js/lib/demo.js
1 | define({ |
特殊情况
当模块 Id 满足以下任意条件之一时,RequireJS 不会进行解析。
- 以
/
开头,例如:/foo
- 以
.js
结尾,例如:foo.js
- 包含 URL 协议,例如:
http://example.com/foo
、https://example.com/foo