Contents

dart2js: Dart-to-JavaScript compiler

使用dart2js工具将Dart代码编译为可部署的JavaScript. 另一个Dart-to-JavaScript编译器dartdevc仅用于开发. 默认情况下, webdev build命令使用dart2js. 默认情况下, webdev serve命令使用dartdevc,但是您可以使用--release标志切换到dart2js.

The dart2js tool provides hints for improving your Dart code and removing unused code. Also see dartanalyzer, which performs a similar analysis but has a different implementation.

此页面告诉您如何在命令行上使用dart2js. 它还提供了调试dart2js生成的JavaScript的技巧.

Basic usage

这是将Dart文件编译为JavaScript的示例:

$ dart2js -O2 -o test.js test.dart

此命令将生成一个文件,其中包含与Dart代码等效的JavaScript. 它还会生成一个源映射,可以帮助您更轻松地调试应用程序的JavaScript版本.

Build config usage

您还可以在构建配置文件中配置dart2js选项. 有关更多信息,请参见build_web_compilers自述文件.

Options

Basic options

dart2js的常见命令行选项包括:

-o <file> or --out=<file>
将输出生成到<file> . 如果未指定,则输出将进入名为out.js的文件.
--enable-asserts
启用断言检查.
-O{0|1|2|3|4}
控制可以帮助减少代码大小并提高所生成代码性能的优化. 有关这些优化的更多详细信息,请运行dart2js -hv .
  • -O0 :禁用许多优化.
  • -O1 :启用默认优化.
  • -O2 :启用-O1优化,以及其他尊重语言语义并对所有程序安全的优化(例如缩小).
  • -O3 :启用-O2优化,并省略隐式类型检查.
  • -O4 :与-O3相比,启用更激进的优化,但前提相同.
-h or --help
显示帮助. 要获取有关所有选项的信息,请使用-hv .

Path and environment options

其他一些方便的选项包括:

--packages=<path>
指定软件包解析配置文件的路径. 有关更多信息,请参见程序包解析配置文件.
-D<flag>=<value>
定义环境变量.
--version
显示dart2js的版本信息.

Display options

以下选项可帮助您控制dart2js的输出:

--suppress-warnings
不显示警告.
--suppress-hints
不显示提示.
--terse
发出诊断信息,但不建议如何解决已诊断的问题.
-v or --verbose
显示大量信息.

Analysis options

以下选项控制dart2js对Dart代码执行的分析:

--enable-diagnostic-colors
为诊断消息添加颜色.
--show-package-warnings
显示从软件包生成的警告和提示.
--csp
在生成的输出中禁用动态代码生成. 这是满足CSP限制所必需的(请参阅W3C内容安全策略.
--dump-info
生成一个文件(后缀.info.json ),该文件包含有关所生成代码的信息. 您可以使用转储信息可视化工具检查生成的文件.

Helping dart2js generate better code

请遵循以下做法,以帮助dart2js更好地进行类型推断,从而可以生成更小,更快的JavaScript代码:

  • 不要使用Function.apply() .
  • 不要覆盖noSuchMethod() .
  • 避免将变量设置为null.
  • 与传递给每个函数或方法的参数类型一致.

Debugging

本节提供了在Chrome,Firefox和Safari中调试dart2js生成的代码的提示. 在支持源地图的浏览器(例如Chrome)中,调试dart2js生成的JavaScript最简单.

无论使用哪种浏览器,都应至少对未捕获的异常(可能对所有异常)启用暂停功能. 对于诸如dart:async之类的将用户代码包装在try-catch中的框架,我们建议暂停所有异常.

Chrome

要在Chrome中调试:

  1. Chrome DevTools文档中所述,打开"开发人员工具"窗口.
  2. Chrome中的视频SourceMaps中所述,打开源地图.
  3. 如何设置断点中所述,对所有异常或仅对未捕获的异常启用调试.
  4. 重新加载您的应用.

Internet Explorer

要在Internet Explorer中调试:

  1. 更新到最新版本的Internet Explorer. (源地图支持已于2014年4月添加到IE).
  2. 加载开发人员工具F12 ). 有关更多信息,请参见使用F12开发人员工具.
  3. 重新加载应用程序. 调试器选项卡显示源映射文件.
  4. 异常行为可以通过Ctrl + Shift + E来控制; 默认为对未处理异常的中断 .

Firefox

Firefox尚不支持源地图(请参见Bug#771597.

要在Firefox中调试:

  1. 启用开发人员工具栏,如Kevin Dangoor的博客文章" 新的Firefox命令行帮助您更快地开发"中所述 .

  2. 在异常上单击暂停 ,如下图所示. Firefox工具栏

  3. 重新加载您的应用.

Safari

要在Safari中调试:

  1. Safari Web Inspector教程中所述,打开"开发"菜单.
  2. 对所有异常或仅对未捕获的异常启用中断. 请参阅" Safari开发者帮助"下的" 添加JavaScript断点 " .
  3. 重新加载您的应用.

by  ICOPY.SITE