Я безуспешно пытался найти способ интегрировать (Typescript-ed) Angular X с Play 2.7.x простым, чистым способом.Под простым и понятным я подразумеваю:
- Угловой проект может быть разработан из отдельной папки, обычно
$MY_PLAY_APP_ROOT/ui
. - . Я могу запустить свое приложение Play, просто используя
sbt run
, т. Е. Безлюбые дополнительные инструменты или в зависимости от устаревших плагинов для Typescript, манипулирования маршрутами и т. д. - Во время работы приложения Play можно изменять код на стороне приложения Angular под
$MY_PLAY_APP_ROOT/ui
, например, WebStorm и скомпилируйте его вручную, когда я скомпилирую его, выходные данные приложения Angular записываются в $MY_PLAY_APP_ROOT/public
без конфликта с моими активами Play, например стилями и т. Д. - Нет необходимости использовать нестандартные маршруты Playтак как это будет головной болью при каждом обновлении Play.
- Я могу включить Angular и его зависимости через WebJars в мой
main.scala.html
. - Я могу повторно использовать мои директивы 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")
. - Проект заархивирован и неактивен.