-
Notifications
You must be signed in to change notification settings - Fork 18
模块标识
基础路径分为全局基础路径和局部基础路径两种。
全局基础路径是 seed.js 加载时所在的路径,使用 seed.use
加载模块时,将基于全局基础路径来解析相对标识,全局基础路径可以使用 seed.config
方法来进行配置。基础路径的配置可以是绝对基础路径,也可以是相对基础路径,相对的基础路径将以 HTML 页面所在的路径为基础路径进一步解析。无论是绝对基础路径还是相对基础路径,都要以 “/” 作为结尾,如果想设置 HTML页面所在的路径为基础路径可以配置 ./
为基础路径。
全局基础路径除了使用 seed.config
来进行配置以外,另外新增了一个更简便的方法。只需在加载 seed.js 文件的时候在其 script 标签上使用 data-baseurl 这个自定义属性来设置全局基础路径即可。
<script src="http://example.com/lib/seed.js" data-main="hello.js" data-baseurl="/static/js/"></script>
局部基础路径是用于加载依赖模块,就是被依赖模块的路径。假如 a 模块依赖 b 模块,那么在解析 b 模块的相对标识时,将以 a 模块的路径为作为基础路径来解析,不会受全局基础路径的影响,这样会更方便,局部基础路径是不可配置的。
模块标识分为相对标识和绝对标识两种。
相对标识是根据基础路径来进行解析的。假如基础路径为 http://example.com/js/
模块标识 hello
解析的模块路径就是 http://example.com/js/hello.js
,对应的模块名既是 hello
。
模块标识 ajax/xhr
解析的模块路径是 http://example.com/js/ajax/xhr.js
,对应的模块名就是 xhr
。
如果模块标识是以 ../
开头,如 ../core
,那么解析的模块路径是 http://example.com/core.js
,对应的模块名就是 core
。
如果模块标识以 /
开头,如 /static/js/core
,那么解析的模块路径是 http://example.com/stitic/js/core.js
,对应的模块名就是 core
。
绝对标识就是普通的 url,可以是 http 协议,也可以是 file 协议,绝对标识不会受到基础路径的影响,如 http://example.com/test.js
的路径就是其自身,模块名就是 test。
目前支持 JS 和 CSS 两种类型的模块,JS 模块为了简便,模块标识可以省略 .js
的后缀,CSS 模块为了区分,模块标识一定要带上 .css
的后缀,模块标识也允许添加参数,如 hello.js?v20121202,这对于刷新缓存很重要。