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

Posted

技术标签:

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

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

他们的目的是什么?我不知道为什么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 生成

见:

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

【讨论】:

以上是关于执行 `dart2js` 时会生成哪些文件?为啥?的主要内容,如果未能解决你的问题,请参考以下文章

为啥python在关闭fifo文件时会生成sigpipe异常?

为啥 Xcode 在创建类时会生成“不必要的”代码?

为啥我的 PHP 脚本在生成缩略图时会停止?

dart2js 代码如何比 javascript 更快?

sblive分区存储什哪些文件

为啥 URL 在存储然后从本地文件系统检索时会被截断?