From f36e9d26791d2c2389187cbdb9647f7335578516 Mon Sep 17 00:00:00 2001 From: William Oliveira Date: Mon, 17 Apr 2017 13:49:22 -0300 Subject: [PATCH] Added HtmlWebpackPlugin (#916) --- app/app.html | 36 +++------------------------------ app/main.development.js | 5 ++++- webpack.config.renderer.dev.js | 15 +++++++++++++- webpack.config.renderer.prod.js | 5 ++--- 4 files changed, 23 insertions(+), 38 deletions(-) diff --git a/app/app.html b/app/app.html index 87d7f582d5..fb819d76b4 100644 --- a/app/app.html +++ b/app/app.html @@ -3,41 +3,11 @@ Hello Electron React! -
- + <% if (htmlWebpackPlugin.options.dll) { %> + + <% } %> diff --git a/app/main.development.js b/app/main.development.js index aba12235cb..2751939790 100644 --- a/app/main.development.js +++ b/app/main.development.js @@ -51,7 +51,10 @@ app.on('ready', async () => { height: 728 }); - mainWindow.loadURL(`file://${__dirname}/app.html`); + const url = (process.env.NODE_ENV === 'development') + ? `http://localhost:${process.env.PORT || 1212}/dist/app.html` + : `file://${__dirname}/dist/app.html`; + mainWindow.loadURL(url); // @TODO: Use 'ready-to-show' event // https://github.com/electron/electron/blob/master/docs/api/browser-window.md#using-ready-to-show-event diff --git a/webpack.config.renderer.dev.js b/webpack.config.renderer.dev.js index 4b20996c7a..8af37e22a8 100644 --- a/webpack.config.renderer.dev.js +++ b/webpack.config.renderer.dev.js @@ -12,8 +12,10 @@ import fs from 'fs'; import webpack from 'webpack'; import chalk from 'chalk'; import merge from 'webpack-merge'; +import express from 'express'; import { spawn, execSync } from 'child_process'; import ExtractTextPlugin from 'extract-text-webpack-plugin'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; import baseConfig from './webpack.config.base'; const port = process.env.PORT || 1212; @@ -214,6 +216,15 @@ export default merge.smart(baseConfig, { new ExtractTextPlugin({ filename: '[name].css' + }), + + /** + * Dynamically generate index.html page + */ + new HtmlWebpackPlugin({ + filename: 'app.html', + template: 'app/app.html', + dll: `${publicPath}/dll/vendor.dll.js` }) ], @@ -236,7 +247,9 @@ export default merge.smart(baseConfig, { verbose: true, disableDotRule: false, }, - setup() { + setup(app) { + app.use('/dist/dll/', express.static(dll)); + if (process.env.START_HOT) { spawn( 'npm', diff --git a/webpack.config.renderer.prod.js b/webpack.config.renderer.prod.js index 02fc001534..0b11b04ea3 100644 --- a/webpack.config.renderer.prod.js +++ b/webpack.config.renderer.prod.js @@ -160,9 +160,8 @@ export default merge.smart(baseConfig, { * Dynamically generate index.html page */ new HtmlWebpackPlugin({ - filename: '../app.html', - template: 'app/app.html', - inject: false + filename: 'app.html', + template: 'app/app.html' }) ], });