Описать более лучшие варианты сборки merged-бандла в enb, чем описанный в документации: https://github.com/enb-make/enb#Сборка-merged-common-бандла.
if (nodeConfig.getPath() === 'desktop.bundles/common') {
var pagesDeps = [],
addTechsAttrs = [
[ require("enb/techs/levels"), { levels: getLevels(config) } ],
require("enb/techs/files"),
[ require('enb/techs/browser-js'), {target: '?.pre.js'} ],
[ require('enb-modules/techs/prepend-modules'), {source: '?.pre.js', target: '_?.js'} ],
[ require('enb/techs/borschik'), { sourceTarget: '_?.js', destTarget: '?.js', minify: false} ],
[ require("./techs/css-stylus-with-if-ie"), {autoprefixerArguments: ["> 1%", "last 2 versions", "Firefox ESR", "Opera 12.1"]} ],
[ require("./techs/css-stylus-with-if-ie-ie9"), {autoprefixerArguments: ['ie 9']} ],
[ require("./techs/css-stylus-with-if-ie-ie8"), {autoprefixerArguments: ['ie 8']} ],
[ require("./techs/css-stylus-with-if-ie-ie")]
];
// Проходимся по существующим страницам
fs.readdirSync('desktop.bundles').map(function (page) {
if (page !== 'common' && fs.existsSync('desktop.bundles/' + page + '/' + page + '.deps.js')) {
// Копируем депсы с каджой страницы внутрь common
addTechsAttrs.push([ require('enb/techs/deps-provider'), { sourceNodePath: 'desktop.bundles/' + page, depsTarget: page + '.deps.js' } ]);
pagesDeps.push(page + '.deps.js');
}
});
// Мерджим все полученные депмы в один - common.deps.js
if (pagesDeps.length>0) {
addTechsAttrs.push([ require('enb/techs/deps-merge'), { depsSources: pagesDeps } ]);
}
// прокидываем атрибуты
nodeConfig.addTechs(addTechsAttrs);
nodeConfig.addTargets(["?.js", "?.css", "?.ie.css", "?.ie8.css", "?.ie9.css"]);
}
Т.е. здесь технология ./techs/css-stylus-with-if-ie
— переделанная из css-stylus-with-autoprefixer
штукень, которая добавляет поддержку if-ie.styl.
Как сделать по-другому и лучше? Сейчас сборка merged-бандла серьезно тормозит, т.к. у меня 50 разных бандлов, которые парсятся/копируются/мерджатся медленнее, чем хотелось бы. А, ну и т.к. я не умею нормально программировать, всё это дело запускается 4 раза для каждой технологии css-stylus-with-if-ie*
. Пример прикладывать стыдно, но, видимо, без этого никак :-(
Подключение jQuery: