我计划创建一个纯DART应用程序,其中HTTP服务器和Web客户端都是用DART编写的.来自Java和Eclipse的终极目标是,我可以在DART编辑器中打开整个项目层次 struct ,并且能够运行为客户端文件提供服务的服务器,并调试应用程序的两端(服务器端使用DartVM,客户端使用Dartium).

我启动了Dart编辑器,在创建了一个简单的命令行应用程序作为服务器端的基础之后,我对项目布局感到困惑.

直接服务器端代码文件(web服务器boostrap类、处理程序和过滤器类)肯定会进入projects bin/文件夹.服务器端依赖关系将进入项目的pubspec.yaml文件.

当服务器必须访问客户端应用程序文件(.dart文件、静态页面源等)才能将其提供给浏览器时,问题就会出现.最简单的解决方案是在服务器项目中创建一个web文件夹,并将客户机web文件放在那里,但这样(据我所知)服务器端依赖项会继承到客户机中,因为我们仍然在同一个pubspec范围内.我不要这个.

我想过在项目的lib/文件夹中创建一个客户端库,并将web文件放在那里,但我不知道在那里放一个完整的web应用程序是什么好做法.我想我必须将HTML语言和其他客户端静电文件放到库的ASSET/子文件夹中.我担心这样会失go IDE对Web应用程序的帮助.

我还可以做的是将客户端放到一个单独的项目中,用它自己的pubspec.yaml像DART Webapp项目一样组织它,然后以某种方式使其成为服务器应用程序的依赖项.我不知道这样服务器是否可以访问另一个项目中的Web文件来提供服务.这可能是执行此操作的最佳方式,因为它提供了客户端和服务器文件的清晰分离.

有人能告诉我做这件事的正确方法吗?


一些更多的解释. 假设我采用其他人已经在答案中建议的单独项目方法,但我仍然喜欢运行服务器,它能够在开发阶段为客户端提供服务,而不需要任何花哨的技巧.服务器必须访问其他项目中的客户端文件.不管它是Javascript还是DART,静电文件无论如何都在那里.在开发过程中,我希望服务于DART文件,因为Dartium的直接DART运行能力大大加快了开发速度.

使用Java和Maven,我可以使客户机包成为服务器的运行时依赖项,并且我可以简单地从类路径提供客户机文件.Dart是否支持以类似的方式访问pub依赖项的内部文件,或者唯一的方式是将所有内容放入客户端的assets资源 文件夹,或者使用相对路径黑客?

推荐答案

这是正在进行的工作:

要改善开发体验,您可以使用符号链接作为变通办法,这样您就可以在服务器软件包的目录中获得客户端文件.

我建议在http://www.dartbug.com/new创建功能请求以获得更好的支持.

Dart相关问答推荐

S,返回Future.sync()的函数和不需要等待的异步函数有什么区别?

Dart:判断泛型函数的类型 T

寻找provider context 的flutter问题

如何使用 dart 将 Uint8list 转换为 List

跳过 JavaScript 直接进入 Dart

如何删除ios上的overscroll?

为什么使用Dart作为前端开发人员?

停止音频循环(audioplayers 包)

Flutter:我应该在哪里调用 SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark)

如何在 Flutter 中为 PopupMenu 添加圆角边框?

是否有必要为Flatter安装Android Studio,或者可以用什么替代Android Studio?

Dart/Flutter 中的=>(箭头)是什么意思?

GestureDetector onTap 卡

如何将条目添加到列表中的特定索引?

Dart:如何在异步函数中管理并发

如何在 Dart 中尚不存在的目录 struct 中创建文件?

dart中的max/mi int/double 值是否有常数?

使用 Dart 将 Uint8List 转换为字符串

在 Dart 中,你能不能从一个构造函数中调用另一个构造函数

如何使用 Dart 将字符串解析为数字?