Как стать автором
Обновить

Комментарии 18

Очень интересна практика размещения сущностей в очень большом проекте, как лучше использовать html и стили less:

Так:
src/module.js
src/github/github.svc.js
src/github/github.ctrl.js
src/github/github.less
src/github/github.html

Или так:
src/module.js
src/services/github/github.svc.js
src/controllers/github/github.ctrl.js
src/styles/github/github.less
src/views/github/github.html

Как мне кажется, могло бы быть удобно работая с одной сущностью, иметь всё связанное с ней в одной папке с названием сущности, но, вижу, что практика другая.

Было бы неплохо увидеть широко распространённые практики раскладки сущностей по папкам.
Используйте второй вариант и напишите скрипт, который будет проходиться по папкам и заносить все файлы с заданным расширением в заголовочный less или js файл. Практика другая потому, что больше разработчиков работают или в студиях, где небольшие проекты на потоке, или с open source, или не хотят развиваться и брать на себя ответственность. В очень большом проекте работает только компонентная архитектура с минимальной связанностью между компонентами и отдельными моделями, видами, контроллерами и т.п у каждого компонента.
Обратите внимание на уже готовые генераторы, например generator-cg-angular.
Какая-то статья ни о чем.

Начали про ангуляр, продолжили про жквери, закончили gulp-concat.

И да, есть модуль gulp-browserify, который еще и сурсмапы делает.
Мне кажется что автор хотел провести читателя от проблем которые возникают при попытках реализовать модули в клиентском js, jQuery noConflict упоминается лишь как частный пример, не очень с его точки зрения, удачной реализации. Собственно там и написано
Я бы хотел проиллюстрировать проблему
. Да в статье многовато воды, убирали что могли ) Но надеюсь что многим будет позлезно, узнать даже про достаточно тривиальные на ваш взгляд вещи.
а есть такой для grunt?
Если речь идет о browserify, то да — github.com/jmreidy/grunt-browserify, по поводу остальных вот небольшая подборка аналогов gulp модулей упомянутых в статье для grunt:
gulp-concat github.com/gruntjs/grunt-contrib-concat
gulp-ng-annotate www.npmjs.org/package/grunt-ng-annotate
gulp-uglify github.com/gruntjs/grunt-contrib-uglify
gulp-sourcemap www.npmjs.org/package/grunt-concat-sourcemap

Но лично я бы рекомендовал пристальней присмотреться к Gulp, мы использовали оба и мне кажется что сообщество Gulp немного поживее и обновляет модули чаще.
благодарю за готовые ссылки, очень удобно
а что в грюнте, что в галпе — это все просто обертка поверх browserify.
Читал эту статью в оригинале и, честно говоря, меня очень удивило несоответствие заголовка и содержания.

1) Непосредственно про Angular здесь не так много
2) Автор рассуждает о том, как «космические корабли бороздят просторы Большого Театра», а потом приходит к выводу, что DI в ангуляре для разруливания зависимостей вполне ок, а с загрузкой отдельных модулей по сети лучше не париться, объединяя все скрипты в один файл app.js и минифицируя его. Ну и предлагает для этого Gulp.js
Поддержу, пожалуй по-поводу заголовка. В оригинале звучит как «Best Practices for Building Angular.js Apps». Сейчас подумаем как заменить на более точно отражающий суть материала. Может быть у Вас есть предложения?
Да мне и оригинальный заголовок не очень :) Building — довольно общее слово, я до середины статьи надеялся, что речь пойдёт об архитектуре приложений и о «правильном» использовании компонентов фреймворка.

Имхо, что-то подобное ближе к смыслу статьи:
1) «Способы сборки Angular.js приложений» — отражает обзорный характер статьи
2) «Сборка Angular.js приложений: RequireJS, Browserify, Gulp» — возможно поможет кому-нибудь потом найти эту статью в поисковике
3) «Простой и удобный конфиг Gulp для сборки Angular.js приложений» — громоздко, но вроде бы наиболее полно отражает то, что автор статьи в итоге сделал
Имхо второй вариант ок.
Возможность require.js загружать модули по запросу не работает для Angular. Хотя в реальности я ни разу не работал с проектом, который имел эту необходимость.

Просто angular 1 не рассчитан на работу с AMD и требует прямой работы с $compile и перекомпиляции в случае получения каких-то модулей в этом режиме.
И это один из существенных недостатков особенно если речь идет о более менее крупных приложениях, об этом говорят и разработчики самого Angular и будут исправлять это во версии 2.

Куда более удачный пример Durandal где require формирует основу движка композиций и позволяет очень гибко через lazy догружать модули по требованию, в отличии от Angular, в котором первоначально разработчиками подразумевалась полная загрузка всех компонентов модуля в память браузера.
По этим же причинам Angular 2 будет представлять из себя Angular 1 + Durandal + ES6 и не удивляюсь если у них появиться какой-то $require сервис для работы с AMD.
Я любитель в вэб разработке, но мне вообще не ясно где это писать?
$ npm install --global gulp $ npm install --save-dev gulp gulp-concat
Что это вообще? Командная строка? Gulp это оффлайн тулза или js-файл или что?

Я вообще пропустил виток развития программирования на js (я остался в том веке когда нужно просто писать код в js файлике, ну максимум еще использовать jQquery), что такое Ангуляр, require.js? Может кто-то в двуг словах или реальные примеры?
Это командная строка. Npm (node package manager) — переменная среда, в контексте которой будет запущена команда (install), с теми параметрами, которые Вы в нее передадите (--global gulp). Для использования npm нужно установить node.js.
Node.js можно особых проблем поставить и на Windows.
без особых*
Реальные примеры? Ну хотя бы mail.google.com (AngularJS)…
А еще есть BackboneJS, EmberJS, ReactJS…
Что касается RequireJS — это модульный загрузчик для сборки приложения в кучу ( с учетом того, что разобрали мы его сами, дабы не запутаться).
На русском можно почитать например здесь

Ах, и да… мы теперь на js даже серверы пишем…

Ну а как там у вас в 2005-м? Все нормально? Да, кстати… Ни в коем случае(!) не ставь на французов в следующем году… они тебя разочаруют.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий