将项目分开是个好主意。这样,您可以为两个平台设置单独的依赖约束,随着应用程序的增长,这最终会变得有意义。它也将为您提供最大的部署灵活性。
这是一个示例存储库;这些工作正在进行中,因此 Flutter 应用程序连接到 Aqueduct API,而 Angular2 应用程序还没有被触及。Flutter 也有类似的类似组件的方法。
该shared
目录将是您最感兴趣的 - 它具有调用 API 的模型和服务。Flutter 和 Angular2 应用程序都使用它作为依赖项。
在此示例中,服务器使用aqueduct serve --port 8082
from运行server/
,Web 应用程序使用pub serve
from运行angular2/
。随着 Dart 生态系统随着DDC之类的发展而发展,采用这种在该工具链中工作的开发/部署模式可能会为您提供最好的服务。
如果您计划提供从 Aqueduct 生成的 HTML/CSS/JS 文件,一个好主意是在您的 Angular2 项目中HTTPFileController
引用该文件夹。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中有快速回答的人员。希望这可以帮助。