Данный пост будет посвящён вопросу сборки Angularjs приложений. Я рассмотрю возможные пути решения и объясню, почему в итоге решил написать несколько собственных плагинов.
Итак, а как вообще принятно решать проблему сборки в последнее время? Grunt/Gulp плагины, require.js, browserify — самые популярные варианты.
Но есть нюанс. Когда вы имеете дело с Angular-приложением, вы сталкиваетесь с необходимостью декларирования зависимостей между модулями для их правильной сборки. Поясню на примере.
Если у вас простейшее приложение, которое состоит из нескольких файлов:
app.js
controllers.js
services.js
directives.js
filters.js
То никаких проблем нет. Вы можете вручную прописать порядок их подключения в том же Grunt/Gulp.
Но, допустим, если вы захотите реализовать такую архитектуру, при которой каждый отдельный сервис, контроллер, директива и т. д. находятся в отдельных файлах, то есть:
app.js
controllers/
FirstCtrl.js
SecondCtrl.js
services/
FirstSrv.js
SecondSrv.js
То вы столкнётесь с рядом трудностей. Главным образом, трудности будут с тем, как сшить все файлы так, чтобы при этом Angular работала без ошибок. В чем трудность?
Читать полностью »