RequireJS 動態載入依賴檔案外掛程式

2021-07-23 00:01:40 字數 1317 閱讀 9741

在使用requirejs的define時候,有時候需要根據一些條件判斷去載入某些檔案,比如在移動版下載入某個外掛程式,在pc版下載入另乙個外掛程式,網上常見的方法一般是的define裡面再去用require方法載入,但這樣有個問題,就是如果後面還有檔案依賴這個外掛程式,require方法是不能保證在下面的檔案使用時保證這個外掛程式載入完畢的。

參考了angularamd的ngload外掛程式和requirejs-promise外掛程式,自己寫了乙個滿足當前專案的業務邏輯的外掛程式,叫dyload.js

/**

dyload.js

example:

1) dyload!window.ismobile?a:b|c|d

equal to

if(window.ismobile)require([a])

else require([b,c,d]) 2)

dyload!window.ismobile?a|b

equal to

if(window.ismobile)require([a,b])

**/define()

} else

}});

//需要在requirejs中配置一下:

require.config(

}});

用法很簡單:

define(["require","angular",'directives/common.directive', "dyload!window.ismobile?directives/menu-list-m.directive:directives/paging.directive|directives/menu-list.directive",

], function(require,ng) );

//mobile下載入menu-list-m.directive,pc下載入另外兩個檔案

或者

define(["require","angular",

//pc下載入uigrid,mobile下不載入

angularamd:

requirejs-promise:

用r.js壓縮**的時候,使用這個外掛程式會報錯,r.js找不到這個玩意。需要在壓縮配置檔案裡面的onbuildread和onbuildwrite裡處理一下

RequireJS核心 之模組載入

requirejs的目標是鼓勵 的模組化,它使用了不同於傳統標籤的指令碼載入步驟。可以用它來加速 優化 但其主要目的還是為了 的模組化。它鼓勵在使用指令碼時以module id替代url位址。requirejs以乙個相對於baseurl的位址來載入所有的 頁面頂層標籤含有乙個特殊的屬性data ma...

requireJs 引用cdn失敗後載入本地js

問題 頁面中引用js和css過多會導致頁面載入變慢 引用cdn中的js和css會比直接在本地上傳時間短 解決辦法 我本地專案用到requirejs載入頁面中的js和css,變為cdn載入時需要改動如下 1.jquery static lib jquery jquery 1.9.1.min 2.增加b...

動態呼叫DLL時不能載入依賴的程式集

假設有2個dll,class1和class2.class1引用class2,並呼叫class2裡的方法。namespace feiyun0112.cnblogs.com namespace feiyun0112.cnblogs.com 如果我們動態呼叫class1裡的方法,會報無法載入 class2...