node package manager
Stop wasting time. Easily manage code sharing in your team. Create a free org »

webpack-manifest-plugin

Webpack Manifest Plugin Build Status codecov Gitter

Webpack plugin for generating an asset manifest.

Install

npm install --save-dev webpack-manifest-plugin

Usage

In your webpack.config.js

var ManifestPlugin = require('webpack-manifest-plugin');
 
module.exports = {
    // ...
    plugins: [
      new ManifestPlugin()
    ]
};

This will generate a manifest.json file in your root output directory with a mapping of all source file names to their corresponding output file, for example:

{
  "mods/alpha.js": "mods/alpha.1234567890.js",
  "mods/omega.js": "mods/omega.0987654321.js"
}

Configuration

A manifest is configurable using constructor options:

new ManifestPlugin({
  fileName: 'my-manifest.json',
  basePath: '/app/'
  seed: {
    name: 'My Manifest'
  }
})

Options:

fileName

Type: String
Default: manifest.json

The manifest filename in your output directory.

basePath

Type: String

A path prefix for all file references. Useful for including your output path in the manifest.

publicPath

Type: String

A path prefix used only on output files, similar to Webpack's output.publicPath. Ignored if basePath was also provided.

stripSrc

Type: String, RegExp

Removes unwanted strings from source filenames.

writeToFileEmit

Type: Boolean
Default: false

If set to true will emit to build folder and memory in combination with webpack-dev-server

seed

Type: Object
Default: {}

A cache of key/value pairs to used to seed the manifest. This may include a set of custom key/value pairs to include in your manifest, or may be used to combine manifests across compilations in multi-compiler mode. To combine manifests, pass a shared seed object to each compiler's ManifestPlugin instance.

filter

Type: function

Filter out files. more details

map

Type: function

Modify files details before the manifest is created. more details

reduce

Type: function
Default: (manifest, {name, path}) => ({...manifest, [name]: path})

Create the manifest. It can return anything as long as it's serialisable by JSON.stringify. Use the seed options to populate manifest. more details

Hooks Options

filter, map, reduce takes as an input an Object with the following properties:

path

Type: String

chunk

Type: Chunk

name

Type: String, null

isChunk

Type: Boolean

isInitial

Type: Boolean

Is required to run you app. Cannot be true if isChunk is false.

isAsset

Type: Boolean

isModuleAsset

Type: Boolean

Is required by a module. Cannot be true if isAsset is false.

License

MIT © Dane Thurber