Skip to content

Commit 9623caa

Browse files
Combine dev and dist webpack configs
1 parent eeadbdb commit 9623caa

File tree

3 files changed

+41
-83
lines changed

3 files changed

+41
-83
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"license": "MIT",
66
"main": "src/scripts/index.js",
77
"scripts": {
8-
"dev": "webpack-dev-server --progress --colors --port 8000 --config webpack.dev.config.js",
8+
"dev": "webpack-dev-server --progress --colors --port 8000 --config webpack.config.js",
99
"clean": "rm -Rf dist",
10-
"dist": "npm run clean && webpack -p --config webpack.dist.config.js"
10+
"dist": "npm run clean && webpack -p --config webpack.config.js --bail"
1111
},
1212
"repository": {
1313
"type": "git",

webpack.dist.config.js renamed to webpack.config.js

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
'use strict';
22

33

4+
var path = require('path');
45
var webpack = require('webpack');
56

67

7-
module.exports = {
8+
// Detect if we're running webpack dev server or building a distribution.
9+
var devServer = path.basename(require.main.filename) === 'webpack-dev-server.js';
10+
11+
12+
var config = {
813
plugins: [
9-
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
10-
new webpack.optimize.DedupePlugin(),
11-
new webpack.optimize.UglifyJsPlugin({compress: {drop_console: true}}),
12-
new webpack.optimize.OccurenceOrderPlugin(),
13-
new webpack.optimize.AggressiveMergingPlugin()
14+
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
1415
],
1516

1617
entry: './scripts/init.jsx',
@@ -69,3 +70,35 @@ module.exports = {
6970
debug: false,
7071
devtool: false
7172
};
73+
74+
75+
if (devServer) {
76+
config.plugins.push(
77+
new webpack.HotModuleReplacementPlugin(),
78+
new webpack.NoErrorsPlugin(),
79+
new webpack.DefinePlugin({'process.env.NODE_ENV': '"development"'})
80+
);
81+
config.entry = [
82+
'webpack/hot/only-dev-server',
83+
'./scripts/init.jsx'
84+
];
85+
config.devServer = {
86+
hot: true
87+
};
88+
config.output.publicPath = '/dist/';
89+
config.module.loaders[0].loader = 'react-hot!babel-loader?stage=1&optional=runtime';
90+
config.cache = true;
91+
config.debug = true;
92+
config.devtool = 'eval';
93+
} else {
94+
config.plugins.push(
95+
new webpack.optimize.DedupePlugin(),
96+
new webpack.optimize.UglifyJsPlugin({compress: {drop_console: false}}),
97+
new webpack.optimize.OccurenceOrderPlugin(),
98+
new webpack.optimize.AggressiveMergingPlugin(),
99+
new webpack.DefinePlugin({'process.env.NODE_ENV': '"production"'})
100+
);
101+
}
102+
103+
104+
module.exports = config;

webpack.dev.config.js

Lines changed: 0 additions & 75 deletions
This file was deleted.

0 commit comments

Comments
 (0)