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' 
    } 
}); 

誰能幫助我瞭解如何需要確定是否一個特定的模塊已經加載或沒有?我一整天都在要求自己,希望能夠找到這個決心的來源,但是無濟於事。

+0

這是隻與第三方模塊?第三方模塊是否返回值?另外,你確定它沒有被引用到其他地方使用不同的路徑?例如:'module/amp_lib'。你能分享演示嗎? –

+0

恐怕我無法真正分享演示......但是,這裏有一些額外的信息:該第三方模塊的內容有所不同。如果我用如下內容替換內容: '(function(){return null;}());' 然後Require不重新加載模塊。我認爲我要做的就是將這件事呈現給第三方開發者;他們本週在我們的辦公室協調這個項目。起初,我認爲這與他們無關,但現在我想知道我們是否可以弄清楚他們(相當大的)代碼庫的哪一部分可能會導致這個問題。 – user2407075

+0

更新:我今天發現了問題。發現我們得到的第三方模塊使用了一些實用程序庫,其中一個符合AMD標準,因此在檢測到加載程序時具有自己的define()函數。因此,在構建時,優化器僅將該庫定義爲模塊,而不是整個代碼庫,這又導致模塊在運行時重新加載。 獲得的經驗:小心填充第三方的東西到需求項目。 – user2407075

回答

0

正如上面指出:

我今天發現了這個問題。發現我們得到的第三方模塊使用了一些實用程序庫,其中一個符合AMD標準,因此在檢測到加載程序時具有自己的define()函數。因此,在構建時,優化器僅將該庫定義爲模塊,而不是整個代碼庫,這又導致模塊在運行時重新加載。獲得的經驗:小心將第三方內容填充到Require項目中。

相關問題