In Webpack 5, the [recommended way](https://webpack.js.org/guides/web-workers/) to create a web worker is

```ts
new Worker(new URL('./worker.js', import.meta.url));
```

Could we update\* the [`pdfjs-dist/webpack` entrypoint](https://github.com/mozilla/pdfjs-dist/blob/master/webpack.js) to use this syntax instead of the legacy `worker-loader`? One of the Webpack contributors told me that `worker-loader` uses "magic" and can cause issues.

\* To maintain compatibility with people still using Webpack 4, we should probably introduce a new entrypoint called `pdfjs-dist/webpack5` (or something like that) rather than changing the existing entrypoint.

Can attempt a PR if you would like.

Closely-related: https://github.com/mozilla/pdf.js/issues/15302


const outName = getTempFile("~preprocess", ".html");
  builder.preprocess(source, outName, defines);
  const out = fs.readFileSync(outName).toString();
  fs.unlinkSync(outName);
  const i = source.lastIndexOf("/");
  return createStringSource(source.substr(i + 1), `${out.trimEnd()}\n`);
}
function buildGeneric(defines, dir) {
  rimraf.sync(dir);
  return merge([
    createMainBundle(defines).pipe(gulp.dest(dir + "build")),
    createWorkerBundle(defines).pipe(gulp.dest(dir + "build")),
    createSandboxBundle(defines).pipe(gulp.dest(dir + "build")),
    createWebBundle(defines, {
      defaultPreferencesDir: defines.SKIP_BABEL
        ? "generic/"
        : "generic-legacy/",
    }).pipe(gulp.dest(dir + "web")),
    gulp.src(COMMON_WEB_FILES, { base: "web/" }).pipe(gulp.dest(dir + "web")),
    gulp.src("LICENSE").pipe(gulp.dest(dir)),
    gulp
      .src(["web/locale/*/viewer.properties", "web/locale/locale.properties"], {
        base: "web/",
      })
      .pipe(gulp.dest(dir + "web")),
    createCMapBundle().pipe(gulp.dest(dir + "web/cmaps")),
    createStandardFontBundle().pipe(gulp.dest(dir + "web/standard_fonts")),
    preprocessHTML("web/viewer.html", defines).pipe(gulp.dest(dir + "web")),
    preprocessCSS("web/viewer.css", defines)