给定一组模块化图案文件(主要文件和各种子文件),
有没有办法检测模块是否捆绑在一起放在一个文件中?在最后一种情况下,我将手动加载带有头文件src =“”标签的模块,通过JS添加。
非捆绑文件用于开发,捆绑的文件用于生产用途。
EDIT代码是ES 5!
我不考虑使用Browserify,要求等......
我用(非常基本的)gulpfiles(使用concat,wrap)
组装我的代码 有人有个主意吗?答案 0 :(得分:0)
假设您的捆绑文件名称中包含某些内容,表明它是捆绑包,您可以检查加载了哪个脚本。例如,如果在开发模式下加载TopModule.js,在生产中加载TopLevel.min.js,则可以将此检测放在TopLevel模块中:
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);
}());