Skip to content

GForces-PL/webpack-assets-map-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Map of bundles and assets

A webpack plugin that generates a map of all assets emitted by webpack. It is useful if you manually manage assets in your project. The map is created in JSON format by default, but can be freely parsed to any other format.

Usage

Using the plugin comes down to registering an instance in the webpack configuration. You can pass in the constructor the settings described below.

Install

npm install --save-dev @gforces/webpack-assets-map-plugin

Add to webpack config

module.exports = {
    // ...
    plugins: [
        new AssetsMapPlugin(options?),
    ],
}

Options

  • output string (default: 'assetsMap.json')

    Path to output file

  • formatter function (default: JSON.stringify)

    Function to format output object before it is saved to file. It is defined as:

    (output: AssetsMapPluginResults) => string;

    Example: Output to PHP format with json2php

    const json2php = require('json2php');
    new AssetsMapPlugin({
      output: 'map.php',
      formatter: result => `<?php\nreturn ${json2php(result)};\n`,
    })
  • assets boolean (default: true)

    Include assets in output

  • auxiliaryFiles boolean (default: false)

    Include auxiliary files in output

  • rootPath string (default: webpack output path)

    The path to which all bundles, assets and auxiliary files will be relative. By default, all extracted files are relative to the webpack output path.

  • clean boolean (default: false)

    Removes all files not generated by webpack last compilation. Unlike the built-in webpack.output.clean setting, it also removes files from paths where assets are saved.

Output

Output is an object with a {AssetsMapPluginResults} type. As default it is output to the file in JSON format. It contains three properties described bellow:

type AssetsMapPluginResults = {
  entrypoints: {
    [name: string]: string[];
  }
  assets?: {
    [source: string]: string;
  }
  auxiliaryFiles?: string[]
};
  • entrypoints

    A map of entrypoints names to associated bundles. If you use content hashes in the output file names, they will also be included.

  • assets

    A map of source files to emitted assets. It contains non-scripts files like css and everythhing you generate with other plugins.

  • auxiliaryFiles

    A flat list of all other files, such as source maps and dynamically imported files

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published