3
我正在處理一個相當複雜的需求項目;這個項目的核心是第三方視頻播放器代碼庫,我們正在構建一個應用程序。我目前正在使用Require優化器來完成我們的生產構建過程。需要加載模塊,即使它包含在構建中
優化器工作的很好,但是當我使用帶有「內置」JS的應用程序時,Require會堅持通過插入額外的腳本標記來加載第三方模塊。我已經通過編譯的JS進行了搜索,並確認該模塊包含在構建中;但它似乎並沒有在運行時被識別。
這個模塊是什麼,需要第三方模塊:
define(['models/Widget','amp_lib'], function(Widget) {
// Housekeeping/configuration
// Nothing to return here
})
模塊amp_lib在主配置定義:
require.config({
paths: {
amp_lib: 'path/to/module/src'
}
});
誰能幫助我瞭解如何需要確定是否一個特定的模塊已經加載或沒有?我一整天都在要求自己,希望能夠找到這個決心的來源,但是無濟於事。
這是隻與第三方模塊?第三方模塊是否返回值?另外,你確定它沒有被引用到其他地方使用不同的路徑?例如:'module/amp_lib'。你能分享演示嗎? –
恐怕我無法真正分享演示......但是,這裏有一些額外的信息:該第三方模塊的內容有所不同。如果我用如下內容替換內容: '(function(){return null;}());' 然後Require不重新加載模塊。我認爲我要做的就是將這件事呈現給第三方開發者;他們本週在我們的辦公室協調這個項目。起初,我認爲這與他們無關,但現在我想知道我們是否可以弄清楚他們(相當大的)代碼庫的哪一部分可能會導致這個問題。 – user2407075
更新:我今天發現了問題。發現我們得到的第三方模塊使用了一些實用程序庫,其中一個符合AMD標準,因此在檢測到加載程序時具有自己的define()函數。因此,在構建時,優化器僅將該庫定義爲模塊,而不是整個代碼庫,這又導致模塊在運行時重新加載。 獲得的經驗:小心填充第三方的東西到需求項目。 – user2407075