【问题标题】:Which files are generated when executing `dart2js`? and why?执行 `dart2js` 时会生成哪些文件?为什么?
【发布时间】:2013-12-17 08:44:27
【问题描述】:

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

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

【问题讨论】:

    标签: dart dart2js


    【解决方案1】:

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

    .js:应用程序的 JavaScript 输出

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

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

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

    【讨论】:

    • 感谢您的回答,我认为.precompiled.js 是我唯一真正需要的东西。而其他对于真正的 Web 应用程序来说是不必要的。
    • 不是最终部署的版本,但是.js.map在开发/调试时非常有用。
    【解决方案2】:

    以下是我在撰写本文时认为正确的内容:

    • .js - dart2js 的主要 JavaScript 输出

      对我们来说,约定是 -o 选项将生成的 Javascript 文件名设置为以 .dart.js 结尾,以区分生成的 Javascript 和 Dart 项目中的显式 Javascript。例如:

      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 文件,您必须为其提供文件名。

    • .precompiled.js 不再由 dart2js 生成

    见:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多