Что нового в Angular, допускающего простой рабочий процесс интеграции Play 2.7.x? - PullRequest
0 голосов
/ 15 июня 2019

Я безуспешно пытался найти способ интегрировать (Typescript-ed) Angular X с Play 2.7.x простым, чистым способом.Под простым и понятным я подразумеваю:

  1. Угловой проект может быть разработан из отдельной папки, обычно $MY_PLAY_APP_ROOT/ui.
  2. . Я могу запустить свое приложение Play, просто используя sbt run, т. Е. Безлюбые дополнительные инструменты или в зависимости от устаревших плагинов для Typescript, манипулирования маршрутами и т. д.
  3. Во время работы приложения Play можно изменять код на стороне приложения Angular под $MY_PLAY_APP_ROOT/ui, например, WebStorm и скомпилируйте его вручную, когда я скомпилирую его, выходные данные приложения Angular записываются в $MY_PLAY_APP_ROOT/public без конфликта с моими активами Play, например стилями и т. Д.
  4. Нет необходимости использовать нестандартные маршруты Playтак как это будет головной болью при каждом обновлении Play.
  5. Я могу включить Angular и его зависимости через WebJars в мой main.scala.html.
  6. Я могу повторно использовать мои директивы Angular App непосредственно в моих представлениях Play.

Есть ли семя или пример для этого подхода?Конечно, я бы хотел использовать самую современную версию Angular, но она может не соответствовать требованиям.Например, использование Angular 7 генерирует минимизированные динамические имена файлов, и я не могу зависеть от тех, что указаны в моих main.scala.html.

Вот некоторые подходы, которые я оценил, но они не удовлетворяют требованиям:

Angular 7 с Play 2.7.x с scala-play-angular-seed .Почему я не предпочитаю этот?

  • Требуется использование нестандартных маршрутов воспроизведения.
  • Angular - это отдельное приложение только для внешнего интерфейса, которое взаимодействует с Play только через API Play.
  • Пользовательские инструменты делают проект слишком сложным, замедляют разработку, например, ожидая всех хитов sbt, которые запускают команды ng или npm.
  • Невозможно получить доступ к данным контроллера воспроизведения из Angular UI, если не используется JWTи добавление сложности.
  • Требуется дополнительная защита конечных точек Play API.
  • Не удается легко интегрировать часть Angular UI в "конверт" дизайна Play, определенный в main.scala.html.
  • Невозможно определить и повторно использовать директивы или угловые функции в представлениях Play.
  • Любые функции на стороне приложения Angular отображаются отдельно от темы приложения Play.

Angular6 с игрой 2.6.x .Почему я не предпочитаю это?

  • Интеграция под $MY_PLAY_APP_ROOT/app/assets/ требует создания и поддержки угловой "конфигурации системы" systemjs.config.js Что это, кстати?
  • Требуется дополнительный инструмент sbt для компиляции машинописи в js addSbtPlugin("name.de-vries" % "sbt-typescript" % "2.5.2-1").
  • Проект заархивирован и неактивен.
...