seajs模块路径解析 简单总结
seajs模块路径解析 简单总结
seajs模块路径解析
最近在试着用seajs + grunt改造现有项目, 遇到的最大的问题就是seajs命名与调用, 简单总结一下。
模块调用
seajs中调用模块有两种方式,seajs.use(ID) 、 require(ID)。
ID命名
- 完整绝对路径 例如 "http://example.com/test/js/jquery/jquery.js"
- 以 "." 开头 例如 "./home/main" "../main"
- 以 "/" 开头 例如 "/js/home/"
- 普通命名 例如 "home/main"
模块路径解析
- 替换alias
- 添加base前缀
可以在seajs.config()方法中设置ID别名和基础路径, 例如:
seajs.config({ base:"js", alias: { jquery: "/jquery/jquery" }})
base添加规则
完整的绝对路径不会加base
以 "." 开头 会相对于当前(被调用的)模块解析地址。 如果不存在被调用的模块(如seajs.use() ), 则会相对于当前页面解析地址。
以 "/" 开头 相对于当前页面的根目录 解析地址
普通命名 直接加上base前缀
base值
base 默认值是 seajs所在目录
seajs.config()中base的解析与ID命名解析规则相同