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
createComponentsBundle(defines).pipe(gulp.dest(dir)),
    gulp.src(COMPONENTS_IMAGES).pipe(gulp.dest(dir + "images")),
    preprocessCSS("web/pdf_viewer.css", "components", defines, true)
      .pipe(postcss([calc(), autoprefixer(AUTOPREFIXER_CONFIG)]))
      .pipe(gulp.dest(dir)),
  ]);
}
gulp.task(
  "components",
  gulp.series(createBuildNumber, function createComponents() {
    console.log();
    console.log("### Creating generic components");
    const defines = builder.merge(DEFINES, { COMPONENTS: true, GENERIC: true });
    return buildComponents(defines, COMPONENTS_DIR);
  })
);
gulp.task(
  "components-legacy",
  gulp.series(createBuildNumber, function createComponentsLegacy() {
    console.log();
    console.log("### Creating generic (legacy) components");
    const defines = builder.merge(DEFINES, {
      COMPONENTS: true,
      GENERIC: true,
      SKIP_BABEL: false,
    });
    return buildComponents(defines, COMPONENTS_LEGACY_DIR);
  })
);
gulp.task(