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
rimraf(JSDOC_BUILD_DIR, function () {
    mkdirp(JSDOC_BUILD_DIR).then(function () {
      const command =
        '"node_modules/.bin/jsdoc" -d ' +
        JSDOC_BUILD_DIR +
        " " +
        JSDOC_FILES.join(" ");
      exec(command, done);
    });
  });
});
gulp.task("types", function (done) {
  console.log("### Generating TypeScript definitions using `tsc`");
  const args = [
    "target ES2020",
    "allowJS",
    "declaration",
    `outDir ${TYPES_DIR}`,
    "strict",
    "esModuleInterop",
    "forceConsistentCasingInFileNames",
    "emitDeclarationOnly",
    "moduleResolution node",
  ].join(" --");
  exec(
    `"node_modules/.bin/tsc" --${args} src/pdf.js web/pdf_viewer.component.js`,
    done
  );
});
function buildLibHelper(bundleDefines, inputStream, outputDir) {