Related to  #11474 and #12815.

The following should be added to `package.json` of `pdfjs-dist` for `worker-loader`.
```
  "peerDependenciesMeta": {
    "worker-loader": {
      "optional": true
    }
  }
```

npm v7 installs `peerDependencies` by default. We can see that calling `npm install pdfjs-dist` in an empty directory will install `webpack` and others in `node_modules`.

> In npm versions 3 through 6, peerDependencies were not automatically installed, and would raise a warning if an invalid version of the peer dependency was found in the tree. As of npm v7, peerDependencies are installed by default.

- https://docs.npmjs.com/cli/v7/configuring-npm/package-json#peerdependencies
- https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/

We can make `worker-loader` optional with `peerDependenciesMeta`.

- https://docs.npmjs.com/cli/v7/configuring-npm/package-json#peerdependenciesmeta
- https://github.com/npm/rfcs/issues/221
saveComments: false,
    defines: bundleDefines,
    map: {
      "pdfjs-lib": "../pdf",
    },
  };
  const licenseHeaderLibre = fs
    .readFileSync("./src/license_header_libre.js")
    .toString();
  const preprocessor2 = require("./external/builder/preprocessor2.js");
  return inputStream
    .pipe(transform("utf8", preprocess))
    .pipe(gulp.dest(outputDir));
}
function buildLib(defines, dir) {
  const versionInfo = getVersionJSON();
  const bundleDefines = builder.merge(defines, {
    BUNDLE_VERSION: versionInfo.version,
    BUNDLE_BUILD: versionInfo.commit,
    TESTING: defines.TESTING || process.env.TESTING === "true",
    DEFAULT_PREFERENCES: getDefaultPreferences(
      defines.SKIP_BABEL ? "lib/" : "lib-legacy/"
    ),
  });
  const inputStream = merge([
    gulp.src(
      [
        "src/{core,display,shared}/**/*.js",
        "!src/shared/{cffStandardStrings,fonts_utils}.js",
        "src/{pdf,pdf.worker}.js",