Add support for using rollup.js to package up JavaScript.

Review Request #12763 — Created Jan. 5, 2023 and submitted


This introduces a new compiler for Pipeline that interfaces with
rollup.js to build JavaScript. Rollup can itself interface with Babel,
TypeScript, etc., and can handle resolving ES6 modules. This allows
consumers (including us) to begin modernizing JavaScript codebases.

The Rollup Pipeline compiler defaults to handling any index.js,
index.es6.js, or index.ts files included in the Pipeline bundle. It
will then compile the file and include its contents in the resulting
Pipeline bundle.

This allows projects to iteratively move to Rollup-bundled JavaScript
with module support, while still keeping legacy JavaScript in the same
bundle. Over time, projects can phase out all but the index file,
allowing Rollup to handle all the actual JavaScript compilation and
allowing Pipeline to handle versioning, resolving, and packaging the
resulting file.

Upcoming changes will begin to introduce usage of Rollup within the
Djblets codebase.

Tested this along with the rest of the modern JavaScript work.

I've verified that Rollup correctly executes within the right
environment for the source files being built, and respects the
appropriate configuration files.

Verified that outdated file checks take into account any files
included in the sourcemaps, and correctly triggers a rebuild only
when there's a change.

Add support for using rollup.js to package up JavaScript.
  1. Ship It!
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to release-4.x (0c2eb5b)