From bf9b52fe0e29497b4b1d3e17a49d705df6a61a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Delattre?= Date: Tue, 29 Nov 2016 21:37:30 +0100 Subject: [PATCH] Optimize webpack for production builds --- README.md | 6 ++++++ package.json | 3 ++- webpack.config.js | 15 ++++++++++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4130bbc..4447e2d 100644 --- a/README.md +++ b/README.md @@ -78,3 +78,9 @@ make test ``` make clean ``` + +## Production build + +``` +yarn build +``` diff --git a/package.json b/package.json index ad355fd..ead9591 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,8 @@ { "name": "canape", "scripts": { - "start": "./node_modules/webpack/bin/webpack.js -d --progress --colors --watch" + "start": "NODE_ENV=development ./node_modules/webpack/bin/webpack.js -d --progress --colors --watch", + "build": "NODE_ENV=production ./node_modules/webpack/bin/webpack.js -p --progress --colors" }, "dependencies": { "babel-polyfill": "^6.16.0", diff --git a/webpack.config.js b/webpack.config.js index a283bf1..0b62a0f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -4,13 +4,12 @@ var path = require("path"); var BUILD_DIR = path.resolve(__dirname, 'build/public/'); var SRC_DIR = path.resolve(__dirname, 'src/public/js'); -module.exports = { +const config = { entry: path.join(SRC_DIR, 'app.js'), output: { path: BUILD_DIR, filename: 'js/app.js', }, - devtool: 'source-map', module: { loaders: [ { @@ -39,10 +38,20 @@ module.exports = { }, plugins: [ new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify('development') + 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) }) ], resolve: { extensions: ['', '.js', '.jsx'] }, }; + +if (process.env.NODE_ENV === 'production') { + config.plugins.push( + new webpack.optimize.UglifyJsPlugin() + ) +} else { + config.devtool = "#cheap-module-source-map" +} + +module.exports = config;