-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathwebpack.config.js
77 lines (71 loc) · 3.04 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
var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
require('dotenv').config();
module.exports = {
devtool: 'sourcemap',
entry: {},
module: {
loaders: [
{test: /jquery\.js$/, loader: "expose?jQuery"}, // Expose jQuery globally, otherwise angular won't see it
{test: /angular\.js$/, loader: "imports?jquery"}, // Force jQuery to load before angular
{test: /\.js$/, exclude: [/app\/lib/, /node_modules/], loader: 'ng-annotate!babel'},
{test: /\.html$/, loader: 'raw'},
{test: /\.styl$/, loader: 'style!css!stylus'},
{test: /\.css$/, loader: 'style!css'},
{test: /\.(woff|woff2)$/, loaders: ['url-loader?limit=100000']},
{test: /\.(ttf|eot)$/, loaders: ['file-loader']},
{test: /\.(wav|mp3)$/, loaders: ['file-loader']},
{
test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10000&mimetype=application/font-woff'
},
{
test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10000&mimetype=application/font-woff'
},
{
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10000&mimetype=application/octet-stream'
},
{
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
loader: 'file'
},
{
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10000&mimetype=image/svg+xml'
}
]
},
plugins: [
// Injects bundles in your index.html instead of wiring all manually.
// It also adds hash to all injected assets so we don't have problems
// with cache purging during deployment.
new HtmlWebpackPlugin({
template: 'client/index.html',
inject: 'body',
hash: true
}),
// Automatically move all modules defined outside of application directory to vendor bundle.
// If you are using more complicated project structure, consider to specify common chunks manually.
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module, count) {
return module.resource && module.resource.indexOf(path.resolve(__dirname, 'client')) === -1;
}
}),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify(process.env.NODE_ENV),
'CLIENT_ID': JSON.stringify(process.env.CLIENT_ID),
'SECRET': JSON.stringify(process.env.SECRET),
'FHIR_URI': JSON.stringify(process.env.FHIR_URI),
'OAUTH2_URI': JSON.stringify(process.env.OAUTH2_URI),
'AUTH_URI': JSON.stringify(process.env.AUTH_URI),
'PROXY': JSON.stringify(process.env.PROXY),
'OFFLINE': JSON.stringify(process.env.OFFLINE)
}
})
]
};