执行`dart2js`时会生成哪些文件?为什么?

时间:2013-12-01 17:05:34

标签: dart dart2js

dart2js可能会生成.js.map.js.deps.precompiled.js

他们的目的是什么?我不知道为什么dart2js在完成编译后不会删除它们。

2 个答案:

答案 0 :(得分:10)

所有文件都是dart2js故意生成的:

.js :应用程序的JavaScript输出

.precompiled.js :JavaScript输出但content security policy (CSP) support

.js.map :用于在浏览器中调试JavaScript代码的源映射文件。它包含从JavaScript到Dart代码行的映射。

.js.deps :包含用于编译的所有参考文件的列表,适用于调试,但我对此不确定。

答案 1 :(得分:2)

在我写这篇文章的时候,我认为这是正确的:

  • .js - dart2js的主要JavaScript输出

    约定是-o选项,用于将生成的Javascript文件名设置为以.dart.js结尾,以区分生成的Javascript与Dart项目中的显式Javascript。 E.g:

    dart2js -o main.dart.js main.dart

    默认情况下,

    pub-build会这样做。 dart.js文件假定使用此约定。示例Dart .gitignore文件通常包含*.dart.js

  • .js.map - 提供从JavaScript到Dart的源地图,使调试更容易

  • .js.deps - 使用dart2js编译时使用了哪些文件

  • .info.json - 包含生成代码信息的json文件(如果指定了--dump-info

  • .js_1.part.js.js_2.part.js等 - 延迟导入的部分内容

    示例Dart .gitignore文件通常包含*.js_以涵盖这些文件。

  • --deferred-map选项将生成一个json文件,您必须为其提供文件名。

  • dart2js

    不再生成
  • .precompiled.js

请参阅:

  1. https://www.dartlang.org/tools/private-files.html
  2. https://github.com/dart-lang/www.dartlang.org/issues/1496我与网站作者进行了一些调整。
  3. https://www.dartlang.org/tools/dart2js/
  4. https://github.com/github/gitignore/blob/master/Dart.gitignore