-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwebpack.config.js
114 lines (99 loc) · 2.4 KB
/
webpack.config.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
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
108
109
110
111
112
113
114
var path = require("path");
var AppCachePlugin = require('appcache-webpack-plugin');
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var git = require('git-rev-sync');
var production = process.env.NODE_ENV === 'production'
// The full git revision - make this work both in development and in production (on Heroku)
if (production) {
// This environment variable is set by Heroku
var version = process.env.SOURCE_VERSION
} else {
var version = git.long()
}
version = version.substring(0, 7)
// TODO: Remove duplication between clientConfig and serverConfig
clientConfig = {
entry: {
app: [
'./src/index.js'
]
},
output: {
path: path.resolve(__dirname + '/docs'),
filename: '[name].js',
},
module: {
rules: [
{
test: /\.(css|scss)$/,
loader: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: "css-loader?sourceMap",
})
},
{
test: /\.(html|png|json)$/,
use: 'file-loader?name=[name].[ext]',
},
{
test: /\.elm$/,
exclude: [/elm-stuff/, /node_modules/],
use: 'elm-webpack-loader?verbose=true&warn=true',
},
{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: 'url-loader?limit=10000&mimetype=application/font-woff',
},
{
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: 'file-loader',
},
],
noParse: /\.elm$/,
},
devtool: 'source-map',
devServer: {
inline: true,
stats: { colors: true },
},
plugins: [
new AppCachePlugin({cache: ["/", "/campsites"], exclude: ['index.html']}),
new webpack.DefinePlugin({
'VERSION': JSON.stringify(version)
}),
new ExtractTextPlugin('app.css')
]
};
serverConfig = {
entry: {
server: [
'./src/server.js'
]
},
target: 'node',
output: {
path: path.resolve(__dirname + '/docs'),
filename: '[name].js',
},
module: {
rules: [
{
test: /\.elm$/,
exclude: [/elm-stuff/, /node_modules/],
use: 'elm-webpack-loader?verbose=true&warn=true',
},
],
noParse: /\.elm$/,
},
externals: {
'pouchdb':"require('pouchdb')",
},
devtool: 'source-map',
plugins: [
new webpack.DefinePlugin({
'VERSION': JSON.stringify(version)
})
]
};
module.exports = [clientConfig, serverConfig];