2016-11-23 115 views
0

給定一組模塊圖案化文件(主之一,和各種潛艇)的,香草JS:模塊捆綁或不

是有辦法來檢測,如果模塊被捆綁在一起成爲一個單一的文件或不?在最後一種情況下,我將通過JS手動加載帶有頭腳本src =「」標籤的模塊。

非捆綁文件用於開發,捆綁的文件用於生產用途。

編輯代碼是ES 5!

我不考慮使用Browserify,要求或等等...

我組裝我的代碼(很基本的)gulpfiles(使用CONCAT,包裝)

人有一個想法?

+0

'ES 5/2015' ES6 = ES2015,從ES5不同。 +你的問題目前還不清楚 – nicovank

+0

ES五,而不是六......「傳統」JS ......我想用Apache Cordova在舊移動WebView中渲染,其實...... –

+0

爲什麼你需要知道文件是捆綁還是不捆綁?是否知道如何將它們包含在index.html中?如果是的話,你可以使用[gulp-useref](https://www.npmjs.com/package/gulp-useref)或[gulp-inject](https://www.npmjs.com/package/gulp) -inject),他們會爲你處理這個問題 – Corina

回答

0

假設您的捆綁文件在名稱中包含某些內容以表明它是捆綁包,您可以檢查哪個腳本已加載。例如,如果你在加載生產在開發模式TopModule.js和TopLevel.min.js就可以把該檢測頂層模塊中:

var isBundled = (function() { 
    var src = ''; 

    if ('undefined' !== typeof (document.currentScript) && document.currentScript.src) { 
     src = document.currentScript.src; 
    } 
    else { 
     (function() { 
      var allScriptElements = document.scripts || document.getElementsByTagName('script'), 
        i; 

      for (i = 0; i < allScriptElements.length; ++i) { 
       if (/(TopLevel(\.min)*)\.js/i.test(allScriptElements[i].src)) { 
        src = allScriptElements[i].src; 

        break; 
       } 
      } 
     }()); 
    } 

    return /\.min\.js/i.test(src); 
}()); 
+0

我hava終於決定使用@Corina提出的技術,這對我來說非常有用!感謝您的回覆! –