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能幫你解決痛苦!例如本人的文件目錄結構如下:

我想要在quikTip.js文件中使用framewokr.js提供的對象,但是framework.js是不遵守AMD規范的,在quikTip.js文件中require  framework模塊之前必須先處理下framework.js使其符合AMD規范,代碼如下:

 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM