【问题标题】:Directory structure for parallel development: Dart and Javascript并行开发的目录结构:Dart 和 Javascript
【发布时间】:2016-02-26 04:22:07
【问题描述】:

我正在做的项目

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

目录结构?

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

在 Javascript 和 Dart 之间切换?

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

提前致谢!

PS:我知道我可以只使用 dart2js 生成的 Javascript,但我想要真正可读的 Javascript。而 dart2js Javascript 并不完全满足这个要求。此外,我想对两种语言之间的差异有一个很好的了解,我认为最好的方法是同时尝试它们。

编辑:我想澄清一下根据 Günter 的要求在 Javascript 和 Dart 之间切换的想法。我将手动为每个 Dart 文件制作一个 Javascript 端口,这样我就可以同时学习两者。由于我将同时开发它们,我希望能够使用 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 文件。

【问题讨论】:

    标签: javascript dart


    【解决方案1】:

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

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

    对于您的编辑:您可以查看dart_to_js_script_rewriter package 来做一个转换器,它将您的&lt;script type="application/dart" src="main.dart"&gt;&lt;/script&gt; 重写为&lt;script src="main.js"&gt;&lt;/script&gt;。从 JS 切换到 Dart 将通过将创建的转换器添加/删除到 pubspec.yaml 并重新启动 pub servepub build 来完成。

    【讨论】:

    • 我知道pub包管理器在使用serve命令时使用dart2js,但重点是我不想在Dart和生成的Javascript之间切换,而是在Dart和我手写的Javascript之间切换。事实上,如果可能的话,我什至不想让 pub serve 制作 *.dart.js 文件。我认为使用--no-dart2js 标志是可能的。
    • 我很难理解你在 Dart 和 JS 之间切换的真正含义。正在进行从 Dart github.com/dart-lang/dev_compiler 生成可读 JS 的工作。我有一段时间没试过了。它尚未准备好生产,但应该可以使用。
    • @AlexandreArdhuin 谢谢!这正是我想要的。如果有人有更好的解决方案,我会暂时不接受答案。
    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多