RequireJS require 路径问题

RequireJS 的引用路径真是个迷,看了这么久终于有了点思路,做出以下总结。

首先需要了解两个基本概念,baseUrl 和 paths,最后会由这两个东西拼接路径。


baseUrl

baseUrl 的确定很简单,三种情况

1. data-main 属性指定

如果在引用 require.js 的 <script> 标签中指定了 data-main 属性,则 baseUrl 为 data-main 指定的文件所在目录。

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 拼接:

  1. 使用 .js 结尾
  2. 使用 / 开头
  3. 使用 http://https:// 开头

标签: none

添加新评论