-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathwebpack.config.js
64 lines (53 loc) · 1.49 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
var webpack = require( 'webpack' );
var resolve = require( './webpack.resolve' );
// only for WINDOWS build, otherwise good luck with characters
var BomPlugin = require( 'webpack-utf8-bom' );
// to create multiple process of webpack, reduce build time
var createVariants = require( 'parallel-webpack' ).createVariants;
function makeConfig( options )
{
var suffix = "";
if ( options.target !== "var" ) {
suffix = "." + options.target;
}
var plugins = [
new BomPlugin( true ),
new webpack.optimize.OccurrenceOrderPlugin()
];
if ( options.minified ) {
plugins.push( new webpack.optimize.UglifyJsPlugin( {
sourceMap: false,
compress: {
warnings: false
}
} ) );
suffix += ".min";
}
return {
context: __dirname + '/src', // `__dirname` is root of project and `src` is source
entry: {
full: './index.js',
// engine: './index.js', // other build entry point if require
},
output: {
path : __dirname + '/dist',
publicPath : "/assets/",
filename : 'Dreamengine' + suffix + '.js',
library : "DREAM_ENGINE",
libraryTarget: options.target || "var",
},
plugins: plugins,
resolve: resolve
};
}
var minified = [];
if ( process.env.DEV_BUILD ) {
minified.push( false );
}
if ( process.env.FINAL_BUILD ) {
minified.push( true );
}
module.exports = createVariants( {
target: [ 'var', 'commonjs2', 'umd', 'amd' ],
minified: minified
}, makeConfig );