Разделять проекты - это хорошая идея. Таким образом, у вас могут быть отдельные ограничения зависимостей для обеих платформ, что в конечном итоге будет иметь смысл по мере роста вашего приложения. Это также даст вам максимальную гибкость при развертывании.
Вот пример репозитория; эти работы находятся в стадии разработки, поэтому приложение Flutter подключено к API Aqueduct, а приложение Angular2 не затронуто. У Flutter подобный компонентный подход.
Каталог shared
будет для вас наиболее интересен - в нем есть модель и сервисы для вызовов API. Оба приложения Flutter и Angular2 используют его как зависимость.
В этом примере сервер запускается с aqueduct serve --port 8082
из server/
, а веб-приложение запускается с pub serve
из angular2/
. По мере того, как экосистема Dart развивается с помощью таких вещей, как DDC, вам, вероятно, лучше всего будет использовать подобный шаблон разработки / развертывания, который работает в этой инструментальной цепочке.
Если вы планируете обслуживать сгенерированные файлы HTML / CSS / JS из Aqueduct, неплохо иметь HTTPFileController
ссылку на папку build/web
в вашем проекте Angular2. Итак, у вас может быть такая структура папок:
project/
server/
pubspec.yaml
lib/
sink.dart
controllers/
model/
client/
pubspec.yaml
lib/
web/
И подключение вашего маршрута выглядит так:
router
.route("/*")
.pipe(new HTTPFileController("../client/build/web"));
Другой подход состоит в том, чтобы иметь сценарий сборки, который записывает файлы в каталог внутри каталога сервера; это может быть полезно для развертывания.
Команда Aqueduct в настоящее время рассматривает различные варианты и строительные инструменты для этой цели. С недавним выпуском DDC мы больше сосредоточены на предоставлении инструментария, который работает с ним. (Я также посмотрю, может ли один из членов нашей команды, сосредоточившийся на этой части головоломки, заглянуть сюда с некоторыми дополнительными мыслями.)
Не стесняйтесь сообщить о проблеме и для этого, чтобы вы могли отслеживать его прогресс. Точно так же у нас есть люди в Gitter dart-lang / server, которые быстро отвечают. Надеюсь это поможет.
person
Joe Conway
schedule
17.06.2017