Какова взаимосвязь между generator-angular и generator-angular-fullstack?

#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

Демонстрации

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

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 /…