并行开发的目录结构:Dart 和 Javascript

Directory structure for parallel development: Dart and Javascript

我正在做的项目

我正在一个团队中开始一个 webaudio 项目,我们正在其中制作音频效果、音频可视化和音频合成。我们现在正在设计一个基本的文件夹结构。我们每个人都在考虑一个结构,在我们的下次会议上我们将选择最好的一个。 team-members 中的一位对 Java 脚本非常有经验,但我更倾向于 Dart,因为它感觉更熟悉、更强大。我有 Java 的背景,但我并没有真正的 Web 开发经验。因此,我想用两种语言开发软件:Dart 和 Javascript,这样我最终可以做出可靠的决定,对于这个项目是使用 Dart 还是 Javascript 更好。

目录结构?

我想将 dart 库细分为三个主要目录:effects、visualization 和 synthesis。但我还不知道将这些主要目录放在哪里。根据 Pub Package Layout Convention 库应该位于 lib 目录中。但是由于所有库都将强烈依赖于 webaudio API,它只会在浏览器中 运行,因此是 web 应用程序。所以我的 第一个问题 是:“我应该将我的库放在 package/libs 目录还是 package/web 目录的某个地方?”和“我应该将 javascript 对应的文件放在同一目录中吗?” 例如:oscillator.js 和 oscillator.js 都放在合成文件夹中。

在 Javascript 和 Dart 之间切换?

目录结构完成后,我希望能够轻松地从 Dart 版本切换到 Javascript 版本和 vice-versa,因为我需要一个带有嵌入式浏览器的浏览器Dart VM 将是 Dartium。所以我的第二个问题:“在Java脚本和 Dart 版本之间轻松切换的最佳方式是什么? “

提前致谢!

PS:我知道我可以只使用 dart2js 生成的 Java 脚本,但我想要实际可读的 Java 脚本。而 dart2js Java 脚本并不完全符合该要求。另外我想对这两种语言的区别有很好的了解,我认为最好的方法是都尝试一下。

编辑:我想阐明根据 Günter 的要求在 Javascript 和 Dart 之间切换的想法。我将手动为每个 Dart 文件制作一个 Java 脚本端口,这样我就可以同时学习这两者。因为我将同时开发它们,所以我希望能够使用 Dart 版本和 Javascript 版本测试站点。所以我希望 HTML 在 Dartium 中加载它:

<script type="application/dart" src="main.dart"></script>

但是如果在任何其他浏览器中:

<script src="main.js"></script>

我认为浏览器包中的 dart.js 这样做是为了在 *.dart 和 *.dart.js 之间切换,具体取决于浏览器是否具有 Dart VM。但我希望它在 *.dart 和 *.js(我自己的 js)之间切换,而不必制作两个单独的 html 文件。

问题 1:lib/ 除了入口点之外的所有内容都可以。

问题2:可以使用pub serve。这允许从 Dartium 或来自同一 url 的任何浏览器访问该应用程序。当请求 *.dart.js 文件而不是 *.dart 文件时,将编译 dart 文件中的任何更新。

对于您的编辑:您可以查看 dart_to_js_script_rewriter package 做一个转换器,将您的 <script type="application/dart" src="main.dart"></script> 重写为 <script src="main.js"></script>。从 JS 切换到 Dart 将通过 adding/removing 您创建的转换器到 pubspec.yaml 并重新启动 pub servepub build.

来完成