#angularjs #yeoman-generator-angular
#angularjs #yeoman-generator-angular
Вопрос:
Я пишу это сравнение, чтобы помочь людям разобраться во всей этой бессмыслице, и на данный момент это просто выглядит так, что преимущества и ценность generator-angular являются подмножеством того, что вы получаете с generator-angular-fullstack. Я заполнил этот материал сам, и я не эксперт, так что, скорее всего, он полон сомнительной достоверности.
Но это уже много раз обсуждалось, и никто еще не ругался, так что, возможно, это правильно. Если это так, то это привело бы к логическому выводу, что нужно просто всегда использовать generator-angular-fullstack и удалять части бэкэнда, если они не нужны. Но этого не может быть, поскольку многие люди все еще используют generator-angular. Я вижу, что generator-angular-fullstack был разветвлен на generator-angular, но что дальше?
Я думаю, я, должно быть, что-то упускаю. Что дает generator-angular людям, чего не дает generator-angular-fullstack?
Ответ №1:
Я уже некоторое время использую оба генератора, выбор одного из которых действительно зависит от того, нужен ли вам внутренний код для предоставления вам обработки данных / управления сеансами или интерфейс API.
generator-angular
- Официальный генератор Yeoman, это означает, что он поддерживается командой yeoman.
- Больше подходит для создания только кода на стороне клиента
- Эти подгенераторы создают только компоненты на стороне клиента (угловые контроллеры, маршруты и представления)
- Не имеет генераторов развертывания, но простой procfile проходит долгий путь.
generator-angular-fullstack
- Это форк от generator-angular от DaftMonk
- Подходит для быстрого запуска полноценного приложения
- Использует сокет.ввод-вывод для быстрой привязки данных между сервером / клиентами
- Эти подгенераторы создают клиентский и серверный код (конечные точки API, модели и даже конфигурации развертывания для Heroku и Openshift)
- Тесты намного более тщательные, используются PhantomJS, Karma и Protractor
- При запуске нового проекта вы можете без каких-либо проблем добавить управление сеансами и пользователями через поставщиков OpenAuth, таких как Google / Facebook / Twitter, или вы можете использовать свою схему базы данных для хранения данных вашего пользователя.
Оба
- Генерируйте версии javascript или coffeescript только для кода интерфейса.
- Предоставьте сценарии сборки для безопасного минимизации. (Angular легко ломается при минификации)
- Может быть легко протестирован с помощью
grunt test
- Используйте grunt в качестве средства запуска задач
- Они глубоко интегрированы с Bower, и добавлять зависимости проще простого. (Однако необходимо обновить конфигурацию тестов fullstack.)
- Создайте каталог распространения со всеми уменьшенными файлами.
- Это одностраничные приложения, существует только одно index.html все файлы и маршруты выполняются с помощью $location от angular
Демонстрации
- Вот пример генератора-angular:
http://commitr.herokuapp.com/ - И вот приложение generator-angular-fullstack, которое я создаю прямо сейчас:
http://protected-shelf-3830.herokuapp.com/
Комментарии:
1. Спасибо, Josue. Из того, что вы написали, я не вижу никаких преимуществ generator-angular перед generator-angular-fullstack, но они должны быть, потому что люди его используют. «Больше подходит для создания только кода на стороне клиента» — это качественное утверждение. Без использования прилагательных, каковы фактические преимущества, которые делают его более подходящим, и недостатки, которые делают другой менее подходящим? Является ли «это поддерживается командой yeoman» преимуществом? Почему это преимущество? Я не понимаю, как это «зависит от того, нужен ли вам внутренний код». Я могу использовать fullstack без серверной части
Ответ №2:
Я создаю generator-ember-fullstack
.
Основная причина, по которой я начал это делать, заключается в том, что сначала я хотел среду с полным стеком.
Первым шагом является построение рабочего процесса проекта. Я выбираю gulp и запускаю шаблон проекта.
Затем он вырос, затем я решил добавить строительные леса, и в итоге я работал над generator-ember-fullstack
.
Основным решением для сборки generator-ember-fullstack
было создание среды с полным стеком, которая включает в себя строительные леса на стороне сервера, а также на стороне клиента.
И мне действительно не понравился плагин grunt-connect, который, по сути, запускает поддельный сервер для обслуживания вашего приложения. Мне нужен был проект, в котором были бы отдельные команды для сборки и развертывания.
Я не знал, что делать с public
папкой, которая создается с помощью grunt build
.command.
И с ember есть, ember-cli
который generator-ember
на стероидах. Опять же, ему не хватает серверной части, и он слишком настроен.
Но, конечно, generator-ember-fullstack
поддерживает nodejs только на стороне сервера. Что идеально подходит для меня.
Комментарии:
1. Это не совсем отвечает на вопрос OP о разнице между ними.
2. Если вам необходимо использовать Ember, почему бы просто не добавить серверную часть и скрипт сборки gulp в существующий ember generator? github.com/yeoman/generator-ember Вы понимаете безумие создания все новых и новых независимых альтернатив?
3. сценарий сборки gulp — это половина проекта. Другая половина — это строительные леса. Я пытался клонировать большую часть
generator-ember
иember-cli
там, где я считаю нужным. Некоторые шаблонные файлы, отличающиеся друг от друга,index.html
заменяются наindex.hbs
, которые обслуживаются с помощьюexpress3-handlebars
механизма просмотра, структура каталогов немного отличается. Я использую RequireJS, поэтому содержимое файлов отличается, это основная причина. Мне все равно приходится клонировать и расширятьgenerator-ember
, так что начинать с нуля вполне нормально.4. Я сделал это для своего конкретного проекта fullstack. Я не уверен, понадобится ли людям приложение ember с express server, но это в основном для меня. Почему вы думаете, что это была бы плохая идея, не так уж сложно создать генератор yeoman, я предлагаю вам попробовать
generator-angular-rails
, это было бы так популярно, я уверен..5. Я не пытаюсь стать популярным. Я пытаюсь уменьшить напрасную энергию, затрачиваемую новичками, мучающимися над выбором, и экспертами, выполняющими работу, которую кто-то уже выполнил в другом проекте, вместо решения еще не решенных проблем. Мой полный ответ на ваш вопрос здесь docs.google.com/spreadsheets/d /…