Name: webpack-stats-plugin
Owner: Formidable
Description: Webpack stats plugin for build information, file manifests, etc.
Created: 2015-02-08 20:54:04.0
Updated: 2018-01-10 16:52:41.0
Pushed: 2017-09-12 21:30:09.0
Homepage: null
Size: 60
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
This plugin will ingest the webpack stats object, process / transform the object and write out to a file for further consumption.
The most common use case is building a hashed bundle and wanting to programmatically refer to the correct bundle path in your Node.js server.
The plugin is available via npm:
m install --save webpack-stats-plugin
You can see lots of examples at
demo/webpack.config.js
.
StatsWriterPlugin = require("webpack-stats-plugin").StatsWriterPlugin;
le.exports = {
ugins: [
// Everything else **first**.
// Write out stats file to build directory.
new StatsWriterPlugin({
filename: "stats.json" // Default
})
The transform function has a signature of:
ransform skeleton.
param {Object} data Stats object
param {Object} opts Options
param {Object} opts.compiler Current compiler instance
returns {String} String to emit to file
tion (data, opts) {}
which you can use like:
StatsWriterPlugin = require("webpack-stats-plugin").StatsWriterPlugin;
le.exports = {
ugins: [
new StatsWriterPlugin({
transform: function (data, opts) {
return JSON.stringify({
main: data.assetsByChunkName.main[0],
css: data.assetsByChunkName.main[1]
}, null, 2);
}
})
StatsWriterPlugin(opts)
Object
) optionsString
) output file name (Default: "stat.json")Array
) fields of stats obj to keep (Default: ["assetsByChunkName"])Function
) transform stats obj (Default: JSON.stringify()
)Stats writer module.
Stats can be a string or array (we"ll have array from using source maps):
etsByChunkName": {
ain": [
"cd6371d4131fbfbefaa7.bundle.js",
"../js-map/cd6371d4131fbfbefaa7.bundle.js.map"
Note: The stats object is big. It includes the entire source included
in a bundle. Thus, we default opts.fields
to ["assetsByChunkName"]
to
only include those. However, if you want the whole thing (maybe doing an
opts.transform
function), then you can set fields: null
in options to
get all of the stats object.
See:
filename
: The opts.filename
option can be a file name or path relative to
output.path
in webpack configuration. It should not be absolute.
transform
: By default, the retrieved stats object is JSON.stringify
'ed
but by supplying an alternate transform you can target any output format.
See demo/webpack.config.js
for various examples
including Markdown output.
transform
should be a String
, not an object.
On Node v4.x
if you return a real object in transform
, then webpack
will break with a TypeError
(See #8). Just adding a simple
JSON.stringify()
around your object is usually what you need to solve
any problems.Contributions welcome! Make sure to pass $ gulp check
.