1.1.0 • Published 7 years ago

inline-file-webpack-plugin v1.1.0

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

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>