forked from django-cms/django-cms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.config.js
More file actions
82 lines (77 loc) · 2.47 KB
/
Copy pathwebpack.config.js
File metadata and controls
82 lines (77 loc) · 2.47 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
var webpack = require('webpack');
module.exports = function (opts) {
'use strict';
var PROJECT_PATH = opts.PROJECT_PATH;
var debug = opts.debug;
var baseConfig = {
devtool: false,
watch: !!opts.watch,
entry: {
'toolbar': PROJECT_PATH.js + '/toolbar.js',
'admin.base': PROJECT_PATH.js + '/admin.base.js',
'admin.pagetree': PROJECT_PATH.js + '/admin.pagetree.js',
'admin.changeform': PROJECT_PATH.js + '/admin.changeform.js'
},
output: {
path: PROJECT_PATH.js + '/dist/',
filename: 'bundle.[name].min.js',
jsonpFunction: 'cmsWebpackJsonp'
},
plugins: [
// this way admin.pagetree bundle won't
// include deps already required in admin.base bundle
new webpack.optimize.CommonsChunkPlugin({
name: 'admin.base',
chunks: ['admin.pagetree', 'admin.changeform']
})
],
resolve: {
extensions: ['', '.js'],
alias: {
jquery: PROJECT_PATH.js + '/libs/jquery.min.js',
classjs: PROJECT_PATH.js + '/libs/class.min.js',
jstree: PROJECT_PATH.js + '/libs/jstree/jstree.min.js'
}
},
module: {
loaders: [
{
test: /(modules\/jquery|libs\/pep)/,
loaders: [
'imports?jQuery=jquery'
]
},
{
test: /class.min.js/,
loaders: [
'exports?Class'
]
}
]
}
};
if (debug) {
baseConfig.devtool = 'inline-source-map';
baseConfig.plugins = baseConfig.plugins.concat([
new webpack.NoErrorsPlugin(),
new webpack.DefinePlugin({
__DEV__: 'true'
})
]);
} else {
baseConfig.plugins = baseConfig.plugins.concat([
new webpack.DefinePlugin({
__DEV__: 'false'
}),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.DedupePlugin(),
new webpack.optimize.UglifyJsPlugin({
comments: false,
compressor: {
drop_console: true // eslint-disable-line
}
})
]);
}
return baseConfig;
};