@abcfe/webpack-manifest

webpack plugin for generating asset manifests

Stats

stars 🌟issues ⚠️updated πŸ› created 🐣size πŸ‹οΈβ€β™€οΈ
@abcfe/webpack-manifest
Minified + gzip package size for @abcfe/webpack-manifest in KB

Readme

Webpack Manifest Plugin

Webpack plugin for generating an asset manifest.

Install

npm install --save-dev abc-webpack-manifest

Usage

In your webpack.config.js

var ManifestPlugin = require('abc-webpack-manifest');

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

extensions

Default: ['.js', '.css']

ε’žεŠ δΊ†εŽηΌ€εηš„θΏ‡ζ»€

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.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.