I have used both and the following text is about my experience.
I will start with the few per-conditions: The code is modularized, i.e. different components are written as modules in separate files already and not all components should be loaded for the application to run. The application should be able to load additional dependencies/components as reaction to user actions or other events. The code should be minified if possible and concatenated into small number of files, the lower the number of requests - the better.
Starting with code base of 1.8MB the task at hand was to squeeze it to something that can be loaded via the Internet on a low performance STB device. The application is the main device interface, so it should indicate activity to the UI asap.
The final thought on this project are as follow:
- You need to first decide which compiler you would you as both require different code style to work properly.
- You need to go an extra step to make sure the code is structured suitably for modularization in both compilers.
- Do not forget that it is simply a tool, there are more than one ways to get to the destination, do not get obsessed!
On the other hand if you are targeting only newer browsers you can go with the faster and easier to use uglify-js/requirejs.