34 ms·
You don't say if you used the 'dart2js --minify' setting, but Closure Compiler should do well. The --minify flag leaves alot more room for additional minificati
by michaelwww 14y ago
You don't say if you used the 'dart2js --minify' setting, but Closure Compiler should do well. The --minify flag leaves alot more room for additional minification. You say you used two modules. The result really depends on the modules. For example, the Dart/JS interop module adds about 140K un-minified. Tree shaking is always on, so the 140K is after stripping unused code. I initially jumped into Dart because I was interested in doing packaged apps that run locally, so the size over the wire didn't concern me as much. I recently converted an ActionScript app to Dart and the post-minify Dart was around the same size as the compiled .swf file (for comparison, same functionality)
Seth Ladd has a couple of posts about Tree Shaking and Minification if you're interested
http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html http://blog.sethladd.com/2013/01/minification-is-not-enough-...
http://blog.sethladd.com/2013/03/i-shrunk-my-dart-to-js-code-by-11x-and.html http://blog.sethladd.com/2013/03/i-shrunk-my-dart-to-js-code...
- weareconvo 14y ago> You don't say if you used the 'dart2js --minify' setting I did. I'm no stranger to Closure Compiler, and even after fiddling around with ADVANCED_OPTIMIZATIONS for an hour, those ridiculous $variables persisted. What was even weirder was, just as a test, I imported a module I wasn't even using at all, and for some reason, Closure Compiler still refused to remove its code...
- michaelwww 14y agoJust for grins, I compiled the Dart app I'm working on now with --minify. It went from 530K to 240K. Then I cleared the --minify flag and used the Closure Compiler but it failed with errors. Not sure what is going on yet, but I don't think this is necessary or advisable -- I've never read of anyone using the Closure Compiler with Dart. Here is a sample few lines from --minify. It's fairly minimal. function I(){} init() var $=I.p var $$={}
- weareconvo 14y agoOkay, but um, why did minify not get rid of the module i wasn't even using?
- michaelwww 14y agoJust to be clear, here is what I did. Dart source -> dart2js -> JavaScript (530K) Dart source -> dart2js -> JavaScript (530K) -> Closure Compiler -> *error* Dart source -> dart2js --minify -> JavaScript (240K) If I import a module and don't use it, such as 'dart:utf', the resulting JavaScript output size does not go up. If I call a function in dart:utf the JavaScript size goes up. If I stop calling the function, the size goes down. If I create a function but don't call it, the size stays the same. If I call it, the size goes up. Everything seems to be working. They just release a new version a few days ago and I'm on the latest.