生成的 JS 文件太大

Posted

技术标签:

【中文标题】生成的 JS 文件太大【英文标题】:Too large JS-file generated 【发布时间】:2013-12-05 20:30:29 【问题描述】:

我有这个代码:

// main.dart
import "package:angular/angular.dart";
main () => ngBootstrap();

我发dart2js --minify --out=main.dart.js main.dart

然后我有 main.dart.js,大小为 2.6 MiB(2,744,320 字节)。 这不正常。我做错了什么?

angular.dart 在这个阶段可以用于生产吗?

【问题讨论】:

***.com/questions/21212131 question/answers 也有与此问题相关的信息。 【参考方案1】:

更新(2014 年 1 月):AngularDart 0.9.5 现在包括一个标准的 MirrorsUsed 列表。要完成它并触发 Dart 的 tree-shaking 优化,你需要在你的程序中添加一个 MirrorsUsed

列出您介绍的所有课程。 override: '*' 最终确定 MirrorsUsed。

既然 helloworld 没有新的类,比如说:

@MirrorsUsed(override: '*')
import 'dart:mirrors';

See Github for the complete helloworld program

关键是在你的 Dart 文件中包含一个 @MirrorsUsed 注释。 Pavel 的 AngularDart 教程链接是一个很好的资源。

要真正回答您的问题:是的,AngularDart 可用于生产,但请注意它现在处于“测试版”版本。我们预计会有许多重大的 API 更改!

【讨论】:

【参考方案2】:

看看关于部署的 angular.dart.tutorial 第 7 章。它有一个关于管理编译代码大小的部分:

https://github.com/angular/angular.dart.tutorial/tree/master/Chapter_07

【讨论】:

【参考方案3】:

@media-slave24

也许这会对您有所帮助: https://code.google.com/p/dart/issues/detail?id=14686

在飞镖错误跟踪系统上报告。一些使用镜子的人得到了 760kb。所以这绝对是一个错误。

【讨论】:

谢谢,它对我有用,我声明了@MirrorsUsed,现在 main.dart.js 是 670.6 KiB(686,736 字节)。但它是如何工作的?官方文档对此没有任何用处。 @media-slave24 api.dartlang.org/docs/channels/stable/latest/dart_mirrors/… 和 api.dartlang.org/docs/channels/stable/latest/dart_mirrors.html 它不是稳定的 API,因此将来可以更改。我希望它会有所帮助。 @media-slave24 670KiB 比 angular.min.js 大 17 倍。您真的考虑在网页中嵌入 670KB 的 javascript 吗?我不明白为什么他们在 angulardart.org 上没有提及这个问题。 (顺便说一下,[angulardart.org/demo/] 加载了 2MB 的 javascript...)。

以上是关于生成的 JS 文件太大的主要内容,如果未能解决你的问题,请参考以下文章

vue 项目打包后没有生成config/index.js文件?

总是得到“生成的 API 分析文件太大”。

WebPack打包React项目, 减小打包后生成的js文件.

webpack5高级优化——代码运行性能

Sql 脚本文件太大 还原数据库

如何编写.EXE文件?