香草JS:模块捆绑或不

问题描述:

给定一组模块图案化文件(主之一,和各种潜艇)的,香草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

假设您的捆绑文件在名称中包含某些内容以表明它是捆绑包,您可以检查哪个脚本已加载。例如,如果你在加载生产在开发模式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提出的技术,这对我来说非常有用!感谢您的回复! –