我很新鲜的Dart appretience,我正在尝试一小时代码实验室'教程。我使用的是IntellijIDEA 14及其Dart插件。
当我构建' Debug'时,Dartium中的一切正常。
当我构建'发布'时,Dart代码会被转换为Javascript,但HTML代码仍然引用Dart源文件。
我认为这有一些解决方案,你知道吗?
由于 雷
答案 0 :(得分:2)
源仍然指向.dart文件,因为如果浏览器中有Dart VM,您希望使用它而不是生成的JS。这是dart.js脚本(它是浏览器包的一部分)的工作,用于确定您运行的浏览器是否具有Dart VM,如果没有,则替换为适当的JS脚本。
例如,index.html文件的源代码可能如下所示:
<html><body>
<script type="application/dart" src="main.dart"></script>
<script src="packages/browser/dart.js"></script>
</body></html>
在使用Dart VM(如Dartium)的浏览器中,开发工具将显示相同的脚本标记。但是,在vanilla Chrome或其他浏览器中,您在开发工具中看到的HTML将如下所示:
<html><body>
<script type="application/dart" src="http://localhost:8080/main.js">/script>
<script src="packages/browser/dart.js"></script>
</body></html>
这是因为dart.js脚本已将main.dart
脚本替换为相应的JS文件。
如果您没有看到此转换发生,请确保您在index.html文件中包含dart.js脚本,并且您正在使用浏览器包将其添加到pubspec.yaml的依赖项中文件:
dependencies:
browser: any
值得注意的是--mode=release
命令的pub build
选项在其输出中不包含.dart文件,但其他模式将(https://www.dartlang.org/tools/pub/cmd/pub-build.html)。我想,由于野外浏览器当前没有Dart VM,因此pub build
假设您只想发布JS文件。我怀疑如果/当vanilla Chrome添加了Dart VM时,这可能会发生变化。同时,在构建项目后,如果您希望它也可以在Dartium中运行,则需要将.dart文件添加到构建输出。如果你想获得额外的幻想,你可以先使用设置了--output-type=dart
标志的{{1}}标记dart2j来缩小你的Dart。