At the FlexJS Summit, some of those who are working on real world apps
mentioned that they eventually run into trouble as their app grows larger.
The release builds stop working properly, and it's easier to deploy the
debug build than to try to make Closure compiler happy to fix the release
build.

I just wanted to bring up a reminder of one option that's available to you
today, when the Closure compiler's advanced optimizations are giving you
trouble. FalconJX lets you pass in options for Closure compiler. That will
let you turn down Closure compiler's optimization level to
SIMPLE_OPTIMIZATIONS or WHITESPACE_ONLY for your release builds:

-js-compiler-option="—compilation_level SIMPLE_OPTIMIZATIONS"

-js-compiler-option="—compilation_level WHITESPACE_ONLY"

SIMPLE_OPTIMIZATIONS will still rename some things in the release build,
like local variables. However, it's much safer to use than
ADVANCED_OPTIMIZATIONS because it doesn't rename members of classes.

WHITESPACE_ONLY will give you a release build that is concatenated and
minified, but nothing is renamed. This is the safest option that shouldn't
break any app.

It's worth mentioning that if you use Closure compiler on its own, it
defaults to SIMPLE_OPTIMIZATIONS. Even Google makes people opt into
ADVANCED_OPTIMIZATIONS, since it requires being so careful about how you
write your code.

- Josh

Reply via email to