forked from claroline/Distribution
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.prod.js
47 lines (45 loc) · 1.29 KB
/
webpack.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
const paths = require('./main/core/Resources/server/paths')
const entries = require('./main/core/Resources/server/webpack/entries')
const shared = require('./main/core/Resources/server/webpack/shared')
const plugins = require('./main/core/Resources/server/webpack/plugins')
const loaders = require('./main/core/Resources/server/webpack/loaders')
if (process.env.NODE_ENV !== 'production') {
throw new Error('Production builds must have NODE_ENV=production')
}
module.exports = {
entry: entries.collectEntries(),
output: {
path: paths.output(),
filename: '[name]-[hash].js'
},
resolve: {
root: paths.bower(),
alias: shared.aliases()
},
plugins: [
plugins.assetsInfoFile(),
plugins.bowerFileLookup(),
plugins.distributionShortcut(),
plugins.defineProdEnv(),
plugins.commonsChunk(),
plugins.dedupeModules(),
plugins.rejectBuildErrors(),
plugins.exitWithErrorCode(),
plugins.clarolineConfiguration(),
plugins.configShortcut(),
...plugins.dllReferences(shared.dllManifests())
],
module: {
loaders: [
loaders.babel(),
loaders.rawHtml(),
loaders.jqueryUiNoAmd(),
loaders.css(),
loaders.imageUris(),
loaders.modernizr(),
loaders.json()
]
},
externals: shared.externals(),
devtool: false
}