я понял что em в медиа запросах используют для того чтоб запросы срабатывали не только при изменении ширины окна браузера но и при зумировании страницы
(Why you should use ems for media queries)
Тогда можно создать объект, у которого имена свойств будут совпадать с типами компонентов, а сами свойства содержать нужный шаблон для вашего шаблонизатора. И по ходу дела расширять объект новыми свойствами, подгружая их аяксом. В этом же объекте можно хранить и методы для соответствующих компонентов.
Если я ничего не путаю, конечно, то можно будет обойтись только вашим шаблонизатором
function loadOurScript(source){
var head = document.getElementsByTagName("head")[0];
script=document.createElement('script');
script.id='formPrinter';
script.type='text/javascript';
script.src=source;
head.appendChild(script);
}
src: ['*.html', 'css/*.css', 'js/*.js'],