香草JS:模块捆绑或不
问题描述:
给定一组模块图案化文件(主之一,和各种潜艇)的,香草JS:模块捆绑或不
是有办法来检测,如果模块被捆绑在一起成为一个单一的文件或不?在最后一种情况下,我将通过JS手动加载带有头脚本src =“”标签的模块。
非捆绑文件用于开发,捆绑的文件用于生产用途。
编辑代码是ES 5!
我不考虑使用Browserify,要求或等等...
我组装我的代码(很基本的)gulpfiles(使用CONCAT,包装)
人有一个想法?
答
假设您的捆绑文件在名称中包含某些内容以表明它是捆绑包,您可以检查哪个脚本已加载。例如,如果你在加载生产在开发模式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提出的技术,这对我来说非常有用!感谢您的回复! –
'ES 5/2015' ES6 = ES2015,从ES5不同。 +你的问题目前还不清楚 – nicovank
ES五,而不是六......“传统”JS ......我想用Apache Cordova在旧移动WebView中渲染,其实...... –
为什么你需要知道文件是捆绑还是不捆绑?是否知道如何将它们包含在index.html中?如果是的话,你可以使用[gulp-useref](https://www.npmjs.com/package/gulp-useref)或[gulp-inject](https://www.npmjs.com/package/gulp) -inject),他们会为你处理这个问题 – Corina