@@ -12,18 +12,15 @@ var baseConfig = {
12
12
} ,
13
13
module : {
14
14
rules : [
15
- {
16
- test : / \. v u e $ / ,
17
- loader : 'vue-loader' ,
18
- options : {
19
- loaders : {
20
- 'scss' : 'vue-style-loader!css-loader!sass-loader' ,
21
- }
22
- }
23
- } ,
24
15
{
25
16
test : / \. j s $ / ,
26
- loader : 'babel-loader' ,
17
+ use : [ {
18
+ loader : 'babel-loader' ,
19
+ options : {
20
+ "presets" : [ [ "es2015" ] ] ,
21
+ "plugins" : [ "transform-es2015-destructuring" , "transform-object-rest-spread" , "transform-runtime" ]
22
+ }
23
+ } ] ,
27
24
exclude : / n o d e _ m o d u l e s /
28
25
} ,
29
26
{
@@ -37,6 +34,15 @@ var baseConfig = {
37
34
name : '[name].[ext]?[hash]' ,
38
35
publicPath : process . env . CDN_URL && process . env . NODE_ENV === 'production' ? `${ process . env . CDN_URL } /dist/` : false
39
36
}
37
+ } ,
38
+ {
39
+ test : / \. v u e $ / ,
40
+ loader : 'vue-loader' ,
41
+ options : {
42
+ loaders : {
43
+ 'scss' : 'vue-style-loader!css-loader!sass-loader' ,
44
+ }
45
+ }
40
46
}
41
47
]
42
48
} ,
@@ -54,41 +60,54 @@ var baseConfig = {
54
60
}
55
61
} ;
56
62
63
+ if ( process . env . NODE_ENV === 'development' ) {
64
+
65
+ }
66
+
57
67
let targets = [ 'web' , 'node' ] . map ( ( target ) => {
58
- return webpackMerge ( baseConfig , {
68
+ let obj = webpackMerge ( baseConfig , {
59
69
target : target ,
60
70
entry : {
61
71
app : target === 'web'
62
72
? process . env . NODE_ENV === 'development'
63
- ? [ `./src/${ target } .entry.js` , 'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000' ]
64
- : [ `./src/${ target } .entry.js` ]
73
+ ? [ `./src/${ target } .entry.js` , 'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000' ]
74
+ : [ `./src/${ target } .entry.js` ]
65
75
: [ `./src/${ target } .entry.js` ]
66
76
,
67
77
} ,
68
78
output : {
69
79
filename : `${ target } .bundle.js` ,
70
80
libraryTarget : target === 'web' ? 'var' : 'commonjs2'
71
81
} ,
82
+ module : {
83
+ rules : [
84
+
85
+ ]
86
+ } ,
72
87
plugins : target === 'web'
73
88
? process . env . NODE_ENV === 'development'
74
- ? [
75
- new webpack . HotModuleReplacementPlugin ( ) ,
76
- new ExtractTextPlugin ( "style.css" )
77
- ]
78
- : [
79
- new webpack . DefinePlugin ( { 'process.env' : { NODE_ENV : '"production"' } } ) ,
80
- new webpack . optimize . UglifyJsPlugin ( { sourceMap : true , compress : { warnings : false } } ) ,
81
- new webpack . LoaderOptionsPlugin ( { minimize : true } ) ,
82
- new ExtractTextPlugin ( "style.css" )
83
- ]
89
+ ? [
90
+ new webpack . HotModuleReplacementPlugin ( ) ,
91
+ new ExtractTextPlugin ( "style.css" )
92
+ ]
93
+ : [
94
+ new webpack . DefinePlugin ( { 'process.env' : { NODE_ENV : '"production"' } } ) ,
95
+ new webpack . optimize . UglifyJsPlugin ( { sourceMap : true , compress : { warnings : false } } ) ,
96
+ new webpack . LoaderOptionsPlugin ( { minimize : true } ) ,
97
+ new ExtractTextPlugin ( "style.css" )
98
+ ]
84
99
: [ ]
85
100
,
86
101
devtool : target === 'web'
87
102
? process . env . NODE_ENV === 'development'
88
- ? '#eval-source-map'
89
- : '#source-map'
103
+ ? '#eval-source-map'
104
+ : '#source-map'
90
105
: false
91
106
} ) ;
107
+ if ( process . env . NODE_ENV === 'development' && target === 'web' ) {
108
+ module . exports . module . rules [ 0 ] . use . push ( { loader : 'webpack-module-hot-accept' } ) ;
109
+ }
110
+ return obj ;
92
111
} ) ;
93
112
94
113
module . exports = targets ;
0 commit comments