Решил я создать первый свой проект на angular и подготавливал сборщики несколько дней (gulp + browser-sync), но сначала.. Предыстория: все началось с того момента, как я понял, что хочу чтобы мой проект был "идеальный", в том смысле, что я пишу на jade + sass и хочу чтобы мой проект был и в скомпилированном не склеенном виде. По этому я создал папку с именем типа "uncompile-src". И тут сразу же "бабах!!!". Я сторонник классов и теории "один класс - один файл", а так же отдельных пакетов для каждого отдельного "звена". Что в свою очередь означает "ерунду", ведь я не использую препроцессора для js и уже понятно, что глупо будет выглядеть что в папке для нескомпилированного не будет js.
Но это пол беды. Я как узнал что можно инжектить файлы при помощи gulp-inject, так сразу отказался от идеи склеивания и решил прямо из папки src инжектить их в браузер при помощи browser-sync.
И все так как нужно, но js файлы не выдерживают порядка очереди и сыплются ошибки.
Можно ли решить эту проблему или снова стоит начать все склеивать в один файл?
И все так как нужно, но js файлы не выдерживают порядка очереди и сыплются ошибки.
Советую начать использовать RequireJS или Browserify. А еще лучше — Babel и ES2015-модули, пора уже. Все остальные попытки «выдерживать порядок очереди» обречены с рождения на хромоту и костыли:)
Как же я о RequireJS не вспомнил :D Но вот чем Browserify лучше и чем не лучше чем browser-sync? А babel я хотел было вначале, но потом мне показалось что первый angular с ним не будет сочетаться. Или будет?
Почитал но так до конца и не понял. Browserify является просто сборщиком, который позволяет использовать синтаксис модулей из nodejs и компилирует все файлы в один при этом оставляя возможность составлять sourceMap. Это все? Раньше я думал что он является ещё и сервером и браузеры обновляет.. Я ошибался?
И ещё вот что очень интересно. Если использовать RequireJS все равно нужно, хоть это и нарушает идеологию angular, то при использовании Babel imports будет в RequireJS компилироваться? и в какой он будет компилироваться импорт в браузерный или нодевский?
И ещё насколько ужасно связка angular + RequireJS? Ведь это как жареная картошка с вареньем?
Сейчас вспоминаю себя некотором временем ранее и причину отказа от babel. Как вспоминается этой причиной стало то, что babel компилирует imports в RequireJSчто в свою очередь и было первопричиной отказа. А ведь я протупил и не обязательно же писать import. Можно его не писать и будут обычные js генерироваться, которые правда придется собирать воедино, что по сути не так уж и страшно, тем более единственная альтернатива это опять-таки склеивать...
vasIvas: import-ы надо писать, в этом суть модулей. И export-ы тоже. Без этого никак. У меня в дев окружении все транспайлится в SystemJS и загружается через es6-module-loader а в прод собираю через es6-module-transpiler, у него есть форматтер bundler который собирает все просто в один файл. Без каких либо упоминаний о модулях - все просто оборачивается в замыкания.