inline-file-webpack-plugin
v1.1.0
Published
Inject file contents into Webpack's output
Downloads
3
Readme
Inline File Plugin
This plugin allows you to directly inject files into Webpack's output after all processing has finished. This is particularly useful when concatenating multiple files that were created via the Extract Text Plugin such as CSS and SVG files.
Usage
webpack.config.json
const InlineFileWebpackPlugin = require('inline-file-webpack-plugin');
module.exports = {
// ...
plugins : [
// ...
new InlineFileWebpackPlugin({
input : './build/index.html', // The file in which to look for inlined paths
output : './build/final.html', // Optional - The output file (defaults to overwriting the input file)
root_path : './build' // Optional - The root directory from which inlined paths are resolved (defaults to the directory of the input file)
prefix : '[[[', // Optional - The prefix for inlined paths (defaults to '[[[')
suffix : ']]]', // Optional - The suffix for inlined paths (defaults to ']]]')
callbacks : { // Optional - A map of callbacks based on filepath
'icons.svg' : contents => contents.replace(/foo/g, 'bar'),
'../other.css' : contents => contents.replace(/bold/g, 'normal'),
},
}),
],
};
./build/index.html
This HTML file could possibly be generated using the HTML Webpack Plugin. The style.css and icons.svg could be generated using the Extract Text Plugin.
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<style>[[[style.css]]]</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
[[[icons.svg]]]
</defs>
</svg>
</body>
</html>