This plugin replaces a placeholder string in a given text asset with the name of another regex-matched asset.
For example you can replace a script/link src placeholder in your html with the final name of your js/css asset.
Tested with Node.js 6.
Compared to other solutions, that modify the bundled files after the webpack build, this plugin is better integrated into webpack and because of this comes with a few advantages.
- Integrated into the build process, before optimization. Therefore the chance of e.g. messed up HTML is reduced
- Works with webpack-dev-server and other tools out of the box
- Lightweight and super fast
See the example
folder
Array of option objects in the following format:
- .asset {String}: Path of the asset whose content is changed by this plugin (e.g. "index.html" or "frontend/index.htm")
- .basename {Boolean}: If set to false only the basename of the matched assets are inserted into your main asset. In the default configuration (false) the whole path to the matched asset is inserted.
- .replacers {Object[]}: Array of replacer definitions. The plugin first looks if it can find a webpack asset that matches the regex provided as
asset
property. If yes it replaces all matches of thefind
regex with the name of the matched assets. Sounds complicated, but is pretty ease :simple_smile:. Just have a look at theexample
folder.
Pull requests welcome! 👍
- Add tests + Travis CI integration
- Add support for SourceMapSource
- Add support for files that are not part of the same webpack module
- Add support for external files that are not even in another webpack module of the same compilation
- Add CONTRIBUTORS.md