それは別々のプロジェクトを維持することをお勧めします。このようにして、両方のプラットフォームで別々の依存関係の制約を設定することができます。これにより、アプリケーションの拡張に伴って有意義なものになります。これにより、展開の柔軟性が最大限に高まります。
Here's an example repository;これらは進行中であるため、FlutterアプリケーションはAqueduct APIに接続され、Angular2アプリケーションは変更されていません。 Flutterは同様の部品のようなアプローチをしています。
shared
ディレクトリは、あなたに最も興味深いものです。このディレクトリには、APIを呼び出すためのモデルとサービスがあります。 FlutterとAngular2の両方のアプリは、それを依存関係として使います。
この例では、サーバーはserver/
からaqueduct serve --port 8082
で実行され、Webアプリケーションはpub serve
からangular2/
で実行されます。ダーツのエコシステムはDDCのように進化しているので、そのようなツールチェーン内で動作するこのような開発/展開パターンを採用することで最も効果的です。
Aqueductから生成されたHTML/CSS/JSファイルを提供する予定の場合は、HTTPFileController
にAngular2プロジェクトのbuild/web
フォルダを参照させることをお勧めします。だから、あなたは次のようにフォルダ構造を持っているかもしれません:
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に素早く答える人々を持っています。お役に立てれば。