-
Notifications
You must be signed in to change notification settings - Fork 0
模块标识
Nevermore Liu edited this page Apr 27, 2015
·
2 revisions
相对标识以 . 开头,只出现在模块环境中(define 的 factory 方法里面)。相对标识永远相对当前模块的 URI 来解析:
顶级标识不以点(.)或斜线(/)开始, 会相对模块系统的基础路径(即 Sea.js 的 base 路径)来解析:
模块系统的基础路径即 base 的默认值,与 sea.js 的访问路径相关:页手工配置 base 路径:
seajs.config({ base: 'http://code.jquery.com/' });// 在模块代码里: require.resolve('jquery'); // => http://code.jquery.com/jquery.js
除了相对和顶级标识之外的标识都是普通路径。普通路径的解析规则,和 HTML 代码中的 <script src="..."></script> 一样,会相对当前页面解析。
提示:
- 顶级标识始终相对
base
基础路径解析。 - 绝对路径和根路径始终相对当前页面解析。
-
require
和require.async
中的相对路径相对当前模块路径来解析。 -
seajs.use
中的相对路径始终相对当前页面来解析。
Sea.js 在解析模块标识时, 除非在路径中有问号(?)或最后一个字符是井号(#),否则都会自动添加 JS 扩展名(.js)。如果不想自动添加扩展名,可以在路径末尾加上井号(#)。
- 关注度分离。
- 尽量与浏览器的解析规则一致。