Skip to content

Sinova/inline-file-webpack-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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>

About

Inject file contents into Webpack's output

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published