1
- var webpack = require ( 'webpack' ) ;
2
- var UglifyJsPlugin = webpack . optimize . UglifyJsPlugin ;
1
+ var env = process . env . NODE_ENV || 'development' ;
3
2
var path = require ( 'path' ) ;
4
- var env = require ( 'yargs' ) . argv . mode ;
5
3
var pkg = require ( './package.json' ) ;
4
+ var webpack = require ( 'webpack' ) ;
5
+ var UglifyJsPlugin = webpack . optimize . UglifyJsPlugin ;
6
6
7
- var plugins = [ ] , outputFile ;
8
-
9
- if ( env === 'build' ) {
10
- plugins . push ( new UglifyJsPlugin ( { minimize : true } ) ) ;
11
- outputFile = pkg . name + '.min.js' ;
12
- } else {
13
- outputFile = pkg . name + '.js' ;
14
- }
7
+ var banner = [
8
+ pkg . name + ' by ' + pkg . author ,
9
+ pkg . homepage ,
10
+ 'Version: ' + pkg . version + ' - ' + new Date ( ) . getTime ( ) ,
11
+ 'License: ' + pkg . license
12
+ ] . join ( '\n' ) ;
15
13
16
14
var config = {
17
15
entry : __dirname + '/src/index.js' ,
18
16
devtool : 'source-map' ,
19
17
output : {
20
18
path : __dirname + '/lib' ,
21
- filename : outputFile ,
19
+ filename : pkg . name + ( env === 'production' ? '.min' : '' ) + '.js' ,
22
20
library : pkg . name ,
23
21
libraryTarget : 'umd' ,
24
22
umdNamedDefine : true
25
23
} ,
26
24
module : {
27
- loaders : [
25
+ preLoaders : [
28
26
{
29
27
test : / \. j s $ / ,
30
- loader : 'babel ' ,
28
+ loader : 'eslint ' ,
31
29
exclude : / n o d e _ m o d u l e s /
32
- } ,
30
+ }
31
+ ] ,
32
+ loaders : [
33
33
{
34
34
test : / \. j s $ / ,
35
- loader : "eslint-loader" ,
35
+ loader : 'babel' ,
36
36
exclude : / n o d e _ m o d u l e s /
37
37
}
38
38
]
@@ -41,7 +41,23 @@ var config = {
41
41
root : path . resolve ( './src' ) ,
42
42
extensions : [ '' , '.js' ]
43
43
} ,
44
- plugins : plugins
44
+ plugins : [
45
+ new webpack . BannerPlugin ( banner )
46
+ ]
45
47
} ;
46
48
49
+ if ( env === 'production' ) {
50
+ config . plugins . push ( new UglifyJsPlugin ( {
51
+ mangle : true ,
52
+ compress : {
53
+ drop_console : true ,
54
+ drop_debugger : true ,
55
+ warnings : false
56
+ }
57
+ } ) ) ;
58
+ outputFile = pkg . name + '.min.js' ;
59
+ } else {
60
+ config . watch = true ;
61
+ }
62
+
47
63
module . exports = config ;
0 commit comments