Update our node dependencies and move to babel-preset-env.

Review Request #10368 — Created Jan. 2, 2019 and submitted — Latest diff uploaded




Until now, we've relied on babel's "es2015" preset. This will always
transpile code to pure ES5, even if the syntax has been supported for a
very long time in browsers. This change moves us over to the "env"
preset, which uses browserslist and compatibility tables to
optimistically produce the best syntax. As part of this, we'll be
codifying exactly which browser versions are supported.

We also had some old version dependencies for babel, uglify-js, and
less. These didn't have any major bugs, but there were some security
notices on things higher up in the dependency chain, and updating gets
us some nice things (like a working calc() in less that doesn't
require weird escaping).

  • Did development and package builds.
  • Ran js-tests.
  • Smoke tested the Review Board UI.