html-webpack-harddisk-plugin
Version:
Write html files to hard disk even when using the webpack dev server or middleware
74 lines (60 loc) • 2.61 kB
Markdown
Harddisk extension for the HTML Webpack Plugin
========================================
[](http://badge.fury.io/js/html-webpack-harddisk-plugin) [](https://david-dm.org/jantimon/html-webpack-harddisk-plugin) [](https://github.com/jantimon/html-webpack-harddisk-plugin/actions/) [](https://github.com/Flet/semistandard)
Enhances [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin)
functionality by adding the `{alwaysWriteToDisk: true|false}` option.
This is an extension plugin for the [webpack](http://webpack.github.io) plugin [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) - a plugin that simplifies the creation of HTML files to serve your webpack bundles.
Installation
------------
You must be running webpack on node 10.x or higher
Install the plugin with npm:
```shell
$ npm install --save-dev html-webpack-harddisk-plugin
```
Basic Usage
-----------
Require the plugin in your webpack config:
```javascript
const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
```
Add the plugin to your webpack config as follows:
```javascript
plugins: [
new HtmlWebpackPlugin(),
new HtmlWebpackHarddiskPlugin()
]
```
The above configuration will actually do nothing due to the configuration defaults.
As soon as you now set `alwaysWriteToDisk` to `true` the generated output of the HtmlWebpackPlugin will
always be written to disk. This is very useful if you want to pick up the output with another middleware.
```javascript
plugins: [
new HtmlWebpackPlugin({
alwaysWriteToDisk: true
}),
new HtmlWebpackHarddiskPlugin()
]
```
Even if you generate multiple files make sure that you add the HtmlWebpackHarddiskPlugin **only once**:
```javascript
plugins: [
new HtmlWebpackPlugin({
alwaysWriteToDisk: true
}),
new HtmlWebpackPlugin({
alwaysWriteToDisk: true,
filename: 'demo.html'
}),
new HtmlWebpackPlugin({
alwaysWriteToDisk: false,
filename: 'test.html'
}),
new HtmlWebpackHarddiskPlugin()
]
```
If you need to set the output path explicitly (for example when using with webpack-dev-server middleware) then pass in the `outputPath` option:
```js
new HtmlWebpackHarddiskPlugin({
outputPath: path.resolve(__dirname, 'views')
})
```