1 | var debug = process.env.NODE_ENV !== 'production';
|
2 | var webpack = require('webpack');
|
3 |
|
4 | module.exports = {
|
5 | context: __dirname + "/src"
|
6 | , devtool: debug ? "inline-sourcemap" : null
|
7 | , entry: ['./client.js']
|
8 | , module: {
|
9 | loaders: [
|
10 | {test: /\.css$/, loader: "style-loader!css-loader"},
|
11 | {
|
12 | test: /\.jsx$/,
|
13 | loader: 'babel',
|
14 | exclude: /(node_modules|bower_components)/,
|
15 | query: {
|
16 | presets: ['react', 'es2015', 'stage-2'],
|
17 | plugins: ['react-html-attrs', 'transform-class-properties', 'transform-decorators-legacy']
|
18 | }
|
19 | },
|
20 | {
|
21 | test: /\.js?$/,
|
22 | loader: 'babel',
|
23 | exclude: /(node_modules|bower_components)/,
|
24 | query: {
|
25 | presets: ['react', 'es2015', 'stage-2'],
|
26 | plugins: ['react-html-attrs', 'transform-class-properties', 'transform-decorators-legacy']
|
27 | }
|
28 | },
|
29 | {test: /\.json$/, loader: "json"},
|
30 | {test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file"},
|
31 | {test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff"},
|
32 | {test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff"},
|
33 | {test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream"},
|
34 | {test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml"}]
|
35 | }
|
36 | , output: {
|
37 | path: __dirname, filename: "index.min.js"
|
38 | }
|
39 | , plugins: debug ? [] : [
|
40 | new webpack.optimize.DedupePlugin()
|
41 | , new webpack.optimize.OccurenceOrderPlugin()
|
42 | , new webpack.optimize.UglifyPlugin({mangle: false, sourcemap: false})
|
43 | ]
|
44 | , devServer: {
|
45 | contentBase: "./"
|
46 | , hot: true
|
47 | }
|
48 | }; |
\ | No newline at end of file |