baseUrl
<script>
require.config({
baseUrl: "/root/path" //设置站点的静态文件根目录
});
</script>
<script>
require(["module/a", "module/b"],function(a, b){
/*
a , b 模块最终的解析地址为
a: /root/path/module/a.js
b: /root/path/module/b.js
*/
});
</script>
paths
<script>
require.config({
baseUrl: "/root/path", //设置站点的静态文件根目录
// 将一些常用的模块的路径映射为别名
// 以 key value 的形势组合
// 在加载模块该模块时, 只需要传入模块的别名就能找到完整的路径
paths: {
"jquery": "jquery.min",
"a" : "module/a",
"b" : "module/b",
"touch" : "http://www.xxx.com/xxxx/xxx/touch.min"
}
});
</script>
<script>
require(["jquery","a", "b"],function(jquery, a, b){
/*
jquery, a , b 模块最终的解析地址为
jquery: /root/path/jquery.min.js
a: /root/path/module/a.js
b: /root/path/module/b.js
*/
});
</script>
如果模块时第三方网站的文件也是可以请求的, 因为 script 标签可以跨域, 每一个模块都是通过 script 来进行加载的
<script>
require(["touch"],function(touch){
/*
touch 模块最终的解析地址为
touch: http://www.xxx.com/xxxx/xxx/touch.min.js
*/
});
</script>
shim
requireJs要求每一个 require 加载的模块,都必须是按照 AMD 规范、用 define 函数定义的模块, 但是实际上,如 jQuery 类的很多库并不符合, 这个时候需要使用 require 提供的 shim 来做兼容处理。
<script>
require.config({
baseUrl: "/root/path", //设置站点的静态文件根目录
paths: {
"jquery": "jquery.min"
},
// 配置不兼容的模块
shim: {
"jquery" : {
//加载该模块时 返回的对象
"exports" : 'window.jQueyr'
}
}
});
</script>
<script>
require(["jqueyr"],function($){
console.log($("body")); // 输出 body 对象
});
</script>
shim 不兼容模块之间的依赖
<script>
require.config({
baseUrl: "/root/path", //设置站点的静态文件根目录
paths: {
"jquery": "jquery.min",
"jquery.scroll" : "jquery.scroll"
},
// 配置不兼容的模块
shim: {
"jquery" : {
//加载该模块时 返回的对象
"exports" : 'jQueyr'
},
"jquery.scroll" : {
"deps" : [ "jquery" ], //改模块依赖 jquery 插件
"exports" : 'jQuery.fn.scroll'
}
}
});
</script>
<script>
require(["jqueyr","jquery.scroll"],function($,scroll){
console.log(scroll);
});
</script>