requirejs(shim)处理加载非AMD规范的js库

  使用requirejs加载模块,模块的定义得遵照AMD规范,也即定义模块的时候使用以下函数定义模块:函数

1 define(function(){
2     var private = function(){
3           console.log('私有方法...');            
4     };
5     return {
6         public:function(){private();}         
7     };
8 });

  即便用define包括模块代码,若是想在requirejs中嵌入本身之前的某些代码,可是这些代码没有遵照AMD规范,该怎么办呢?骚年不用担忧,require的config中的shim能帮你解决痛苦!例如本人的文件目录结构以下:requirejs

我想要在quikTip.js文件中使用framewokr.js提供的对象,可是framework.js是不遵照AMD规范的,在quikTip.js文件中require  framework模块以前必须先处理下framework.js使其符合AMD规范,代码以下:ui

 1 require.config({
 2         baseUrl:'js/utily',//指定js文件的基路径
 3         shim:{
 4             'framework':{//这个键名为要载入的目标文件的文件名,不能随便命名不然加载framework.js文件后是拿不到改文件对外提供的接口的。由于这个坑了哥一下午!!!
 5                 exports:'PXJSFrame'//exports的值为framework.js提供的 对外接口的名称
 6             }
 7         }
 8     });
 9 require(['framework'],function(frame){
10     var PXJSFrame = frame;
11      console.log(frame);//此处就会打印framework.js中对外提供的接口对象啦哈啊哈
12 }
相关文章
相关标签/搜索