Switch our JavaScript compressor to UglifyJS.

Review Request #4319 — Created July 11, 2013 and submitted — Latest diff uploaded

Information

Review Board
master

Reviewers

Switch our JavaScript compressor to UglifyJS.

We were using jsmin for compressing JavaScript, but this has some
annoying license issues, and flat-out breaks with jquery.cookie. It's
also just not very good compared to modern tools.

This change switches to using UglifyJS. Uglify has the advantage of
being used and well-tested by large numbers of projects, including
jQuery. It's easy to install (npm install uglify-js), and since we use
npm for other tools (lessc, require.js soon), it's nice and consistent.

Another good option would have been Closure, but Closure's really mad at
a lot of our code (probably worth looking into anyway). It also seems to
have some inconsistent installation experiences on MacOS, from when I
first installed it. For those reasons, I'm erring in the favor of npm,
given that we already require it. (Hopefully this also make life a
little easier for our packagers.)

With this change, I can build working JavaScript bundles again.
Hand-inspected our bundles.

Deployed to reviews.reviewboard.org (since the deployment was broken due
to the jsmin </3 jquery.cookie issue), and everything seems to be working
fine.