执行 `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` 时会生成哪些文件?为啥?的主要内容,如果未能解决你的问题,请参考以下文章