forked from GetStream/stream-react-example
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.config.js
More file actions
107 lines (102 loc) · 2.09 KB
/
webpack.config.js
File metadata and controls
107 lines (102 loc) · 2.09 KB
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var InlineEnviromentVariablesPlugin = require('inline-environment-variables-webpack-plugin');
var path = require('path');
var env = new webpack.DefinePlugin({
'process.env': JSON.stringify(process.env),
});
var plugins = [
new ExtractTextPlugin({
filename: './public/css/styles.css',
allChunks: true,
}),
new InlineEnviromentVariablesPlugin([
'NODE_ENV',
'JWT_SECRET',
'DB_USERNAME',
'DB_HOST',
'DB_PASSWORD',
'DB_PORT',
'MAPBOX_ACCESS_TOKEN',
'S3_KEY',
'S3_SECRET',
'S3_BUCKET',
'STREAM_APP_ID',
'STREAM_KEY',
'STREAM_SECRET',
'ALGOLIA_APP_ID',
'ALGOLIA_SEARCH_ONLY_KEY',
'ALGOLIA_API_KEY',
'KEEN_PROJECT_ID',
'KEEN_WRITE_KEY',
'KEEN_READ_KEY',
'IMGIX_BASE_URL',
'API_URL',
]),
];
if (process.env.NODE_ENV == 'production') {
plugins = [
new ExtractTextPlugin({
filename: './public/css/styles.min.css',
allChunks: true,
}),
new webpack.optimize.UglifyJsPlugin({
compressor: { warnings: false },
}),
new InlineEnviromentVariablesPlugin([
'NODE_ENV',
'JWT_SECRET',
'DB_USERNAME',
'DB_HOST',
'DB_PASSWORD',
'DB_PORT',
'MAPBOX_ACCESS_TOKEN',
'S3_KEY',
'S3_SECRET',
'S3_BUCKET',
'STREAM_APP_ID',
'STREAM_KEY',
'STREAM_SECRET',
'ALGOLIA_APP_ID',
'ALGOLIA_SEARCH_ONLY_KEY',
'ALGOLIA_API_KEY',
'KEEN_PROJECT_ID',
'KEEN_WRITE_KEY',
'KEEN_READ_KEY',
'IMGIX_BASE_URL',
'API_URL',
]),
];
}
module.exports = {
entry: {
app: ['./modules/main.js'],
},
output: {
filename: './public/js/[name].js',
},
module: {
loaders: [
{
test: /\.jsx?$/,
loaders: ['jsx-loader', 'babel-loader'],
exclude: /node_modules/,
},
{
test: /\.s?css$/,
loader: ExtractTextPlugin.extract('css-loader!sass-loader'),
},
],
},
resolve: {
modules: [path.resolve(__dirname), 'node_modules'],
alias: {
components: 'modules/components',
actions: 'modules/actions',
reducers: 'modules/reducers',
utils: 'modules/utils',
},
extensions: ['.js', '.jsx'],
},
plugins: plugins,
};