This is very confusing as seen in #12974 or #12906. My suggestion would be "legacy."
function () {
      console.log();
      console.log("### Building development sandbox");
      const defines = builder.merge(DEFINES, { GENERIC: true, TESTING: true });
      const sandboxDir = BUILD_DIR + "dev-sandbox/";
      rimraf.sync(sandboxDir);
      return createSandboxBundle(defines, {
        disableVersionInfo: true,
      }).pipe(gulp.dest(sandboxDir));
    }
  )
);
gulp.task("watch-dev-sandbox", function () {
  gulp.watch(
    [
      "src/pdf.{sandbox,sandbox.external,scripting}.js",
      "src/scripting_api/*.js",
      "src/shared/scripting_utils.js",
      "external/quickjs/*.js",
    ],
    { ignoreInitial: false },
    gulp.series("dev-sandbox")
  );
});
gulp.task(
  "server",
  gulp.parallel("watch-dev-sandbox", function () {
    console.log();
    console.log("### Starting local server");
    var WebServer = require("./test/webserver.js").WebServer;