code: function getManifestEntriesFromCompilation(compilation, config) {
    const blacklistedChunkNames = config.excludeChunks;
    const whitelistedChunkNames = config.chunks;
    const {assets, chunks} = compilation;
    const {publicPath} = compilation.options.output;
  
    const assetMetadata = generateMetadataForAssets(assets, chunks);
    const filteredAssetMetadata = filterAssets(assetMetadata,
        whitelistedChunkNames, blacklistedChunkNames);
  
    const knownHashes = [
      compilation.hash,
      compilation.fullHash,
      ...getKnownHashesFromAssets(filteredAssetMetadata),
    ].filter((hash) => !!hash);
  
    const manifestEntries = [];
    for (const [file, metadata] of Object.entries(filteredAssetMetadata)) {
      // Filter based on test/include/exclude options set in the config,
      // following webpack's conventions.
      // This matches the behavior of, e.g., UglifyJS's webpack plugin.
      if (!ModuleFilenameHelpers.matchObject(config, file)) {
        continue;
      }
  
      const publicURL = resolveWebpackURL(publicPath, file);
      const manifestEntry = getEntry(knownHashes, publicURL, metadata.hash);
      manifestEntries.push(manifestEntry);
    }
    return manifestEntries;
  }
docs: Generate an array of manifest entries using webpack's compilation data.
  
  @param {Object} compilation webpack compilation
  @param {Object} config
  @return {Array<workbox.build.ManifestEntry>}
  
  @private