2017-05-20 45 views
1

我在使用dart2js构建时已经使用了minify参数。Dart - dart2js和进一步的尺寸优化

我看着输出,我看到import 'dart:html导致输出文件大小(2kb.dart文件变成182kb .js文件)方面的问题。例如,它会导入SVG包,但在我的代码中,我从不碰任何<svg> DOM元素。

我知道编译器不知道我是否要使用svg DOM元素。我知道使用var是这种行为的原因之一。

但是,如果我不使用任何var关键字,编译器仍然没有足够的“电源”去除所有未使用的包和功能。

是否有任何指令可以用来禁止导入某些软件包。我的意思是现在内置的软件包。我正在使用IntelliJ IDEA,它不允许我在Dart默认设置中更改任何内容。

UPD:尽量选用

import 'dart:html' show querySelector, Element 

只导入方法和类,但文件大小仍是182KB。

我现在看到的唯一解决方案是制作默认的'dart:html'包的几个剥离版本。没有WebGL,SVG和一些其他功能的人。

因为也许Dart编译器工作良好,但只有一些方法和类,我不使用,但代码使用。像...初始包方法检查是否有一些元素是SVG或类似的东西。

+0

对于其他的目的,我有一个最小的工作'镖:用'querySelector'建筑html'项目'release'的大小得到了'37kb - main.dart.js'。领先一步可能会影响最小的项目。 –

回答

1

即使你不导入任何东西,你也会得到一些最小的输出大小。 Dart提供了很多像继承和混合类(以及更多)的类,而dart2js输出包含了实现这些特性的代码。 这就像添加一个JS库,如jQuery。 因此main() {}已经会导致几十kb的输出大小。添加另一行代码可能只会添加一些额外的字节。

pub build默认会进行抖动和缩小,因此不需要其他选项。