Plugin for injecting css chunks, extracted using extract-css-chunks-webpack-plugin, to HTML for html-webpack-plugin
Use in conjunction with extract-css-chunks-webpack-plugin and babel-plugin-dual-import to inject CSS chunks paths into your HTML file with html-webpack-plugin.
The current version is incompatible with Webpack 3 or older. In order to use this plugin with Webpack 3, use css-chunks-html-webpack-plugin@0.1.0
npm install --save-dev css-chunks-html-webpack-plugin@0.1.0npm install --save-dev css-chunks-html-webpack-plugin \ mini-css-extract-plugin babel-plugin-dual-import \ html-webpack-pluginwebpack.config.js
const ExtractCssPlugin = require('mini-css-extract-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CssChunksHtmlPlugin = require('css-chunks-html-webpack-plugin'); module.exports = { // your other options plugins: [new ExtractCssPlugin(), new CssChunksHtmlPlugin({ inject: 'head' }), new HtmlWebpackPlugin()], };You can pass an object of configuration options to CssChunkHashPlugin. Allowed values are as follows:
inject:'head'|'body'|falsewhether to inject chunks paths script into HTML, used for manually adding chunks paths using custom template for HtmlWebpackPlugin (defaulttrue)
The CSS chunks paths map is saved in htmlWebpackPlugin.files.cssHash in your template. So if you want to manually add CSS chunks map you can do (if you are using EJS):
<script type="text/javascript"> window.__CSS_CHUNKS__ = JSON.parse('<%= JSON.stringify(htmlWebpackPlugin.files.cssHash) %>') </script>By default, it will inject script tag into <head>. If you want to inject the script tag with window.__CSS_CHUNKS__ into <body> set inject: 'body',
There is a basic example of usage in examples
You're free to contribute to this project by submitting issues and/or pull requests.
This project is licensed under MIT.