webpack/examples/manifest-plugin/webpack.config.js

48 lines
929 B
JavaScript

"use strict";
const YAML = require("yamljs");
const webpack = require("../../");
/** @type {webpack.Configuration} */
module.exports = {
devtool: "source-map",
output: {
chunkFilename: "[name].[contenthash].js"
},
optimization: {
chunkIds: "named" // To keep filename consistent between different modes (for example building only)
},
module: {
rules: [
{
test: /foo.txt/,
use: require.resolve("file-loader")
}
]
},
plugins: [
new webpack.ManifestPlugin({
filename: "manifest.json"
}),
new webpack.ManifestPlugin({
filename: "manifest.yml",
prefix: "/nested/[publicpath]",
filter(item) {
if (/.map$/.test(item.file)) {
return false;
}
return true;
},
generate(manifest) {
delete manifest.assets["manifest.json"];
manifest.custom = "value";
return manifest;
},
serialize(manifest) {
return YAML.stringify(manifest, 4);
}
})
]
};