UNPKG

@gforces/webpack-assets-map-plugin

Version:

Exports map of webpack compilation entrypoints and assets

87 lines (60 loc) 2.57 kB
# 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 ```sh npm install --save-dev @gforces/webpack-assets-map-plugin ``` ## Add to webpack config ```javascript 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: ```JavaScript (output: AssetsMapPluginResults) => string; ``` _Example: Output to PHP format with [json2php](https://www.npmjs.com/package/json2php)_ ```Javascript 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: ```TypeScript 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