Skip to content

Instantly share code, notes, and snippets.

@aliustaoglu
Created August 22, 2018 03:50
Show Gist options
  • Save aliustaoglu/3dd887a1184696b83a0c104eb7010e26 to your computer and use it in GitHub Desktop.
Save aliustaoglu/3dd887a1184696b83a0c104eb7010e26 to your computer and use it in GitHub Desktop.
Watch webpack in production environment with create-react-app (react-scripts)

This configuration works with maven spring framework.

This requires react-app-rewired as dev dependency.

Build script stays as is, add a watch script that will trigger config-overrides using react-app-rewired and it will watch webpack.

{
"scripts": {
    "build": "react-scripts build",
    "watch": "react-app-rewired build"
  }
}
const webpack = require('webpack');
const { paths } = require('react-app-rewired');
const fs = require('fs-extra');
const path = require('path');
module.exports = function override(config, env) {
console.log('Rewiring in environment:', env);
config.devtool = 'inline-source-map';
config.entry = config.entry.filter(entry => !entry.includes('webpackHotDevClient'));
webpack(config).watch({}, function(err, stats) {
copyPublicFolder();
var d = new Date();
console.log('Generated New Source: ' + d.toLocaleTimeString());
});
return config;
};
function copyPublicFolder() {
fs.copySync(paths.appBuild, path.join(__dirname, '../../../target/classes/static'), {
dereference: true,
filter: file => file !== paths.appHtml
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment