-
Notifications
You must be signed in to change notification settings - Fork 2
/
webpack.config.prod.js
56 lines (55 loc) · 1.71 KB
/
webpack.config.prod.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
const path = require('path');
const webpack = require('webpack');
const DefinePlugin = webpack.DefinePlugin;
const DedupePlugin = webpack.optimize.DedupePlugin;
const UglifyJsPlugin = webpack.optimize.UglifyJsPlugin;
const OccurenceOrderPlugin = webpack.optimize.OccurenceOrderPlugin;
module.exports = {
entry: ['./src/client/index'],
output: {
path: path.join(__dirname, 'out/client'),
filename: 'bundle.js',
publicPath: '/assets/',
},
plugins: [
new DefinePlugin({
__DEVELOPMENT__: false,
__PORT__: process.env.PORT,
'process.env': {
NODE_ENV: JSON.stringify('production'),
PORT: process.env.PORT,
},
}),
new DedupePlugin(),
new UglifyJsPlugin({
compress: { warnings: false },
output: { comments: false },
}),
new OccurenceOrderPlugin(),
],
module: {
loaders: [
{
test: /\.jsx?$/,
loader: 'babel',
include: [path.join(__dirname, 'src', 'client'), path.join(__dirname, 'src', 'shared')],
query: {
plugins: [
'babel-plugin-transform-react-constant-elements',
'babel-plugin-transform-react-inline-elements',
'babel-plugin-transform-react-remove-prop-types',
'transform-decorators-legacy',
],
},
},
{ test: /\.(css)(\?.+)$/, loaders: ['style-loader', 'css-loader'] },
{ test: /\.scss$/, loader: 'style!css!sass' },
{ test: /\.(png|gif|jpg)$/, loader: 'file-loader' },
{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: 'url-loader?limit=10000&mimetype=application/font-woff',
},
{ test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'file-loader' },
],
},
};