RequireJS 的引用路径真是个迷,看了这么久终于有了点思路,做出以下总结。
首先需要了解两个基本概念,baseUrl 和 paths,最后会由这两个东西拼接路径。
baseUrl
baseUrl 的确定很简单,三种情况
1. data-main 属性指定
如果在引用 require.js 的
2. require.config
可以使用以下代码配置 baseUrl:require.config({
baseUrl: 'js'
})
3. 默认情况
默认情况下 baseUrl 为 引用 require.js 的文件的目录。
paths
可以在 require.config 里设置 paths 属性,很方便,举个例子:require.config({
baseUrl: './',
paths: {
js: 'assets/js'
}
})
// 这里引用到的实际是 assets/js/abc.js
reauire(['js/abc.js'], fn);
./ 开头及 .js 结尾
./ 开头的路径会进行一个替换,它会被替换成当前模块所在的路径。
.js 结尾的路径不会使用 baseUrl 和 paths 拼接。
实际上有三种情况都不会使用 baseUrl 拼接:使用 .js 结尾
使用 / 开头