@@ -17,30 +17,37 @@ module.exports = function (src, opts) {
17
17
let publicPath = c . options . output . publicPath ;
18
18
19
19
let protocol = 'http' ;
20
- let port = PORT || opts . port || 8080 ;
21
- let hostname = HOST || opts . host || 'localhost' ;
22
-
23
- if ( opts . https || HTTPS ) {
24
- let { key, cert, cacert } = opts ;
20
+ let port = PORT || opts . port ;
21
+ let hostname = HOST || opts . host ;
22
+ let dev = c . options . devServer ;
23
+
24
+ // use custom configs if KEY === default
25
+ port = port === 8080 && dev . port || port ;
26
+ hostname = hostname === 'localhost' && dev . host || hostname ;
27
+
28
+ if ( opts . https || HTTPS || dev . https ) {
29
+ let tmp = Object . assign ( { } , dev . https , opts ) ;
30
+ let { key, cert, cacert } = tmp ;
31
+ let hasCA = Boolean ( cacert ) ;
25
32
protocol = 'https' ;
26
33
27
34
if ( key && cert ) {
28
35
key = resolve ( cwd , key ) ;
29
36
cert = resolve ( cwd , cert ) ;
30
37
cacert = cacert && resolve ( cwd , cacert ) ;
31
38
if ( existsSync ( key ) && existsSync ( cert ) ) {
32
- opts . https = { key, cert, ca :cacert } ;
39
+ dev . https = { key, cert, ca :cacert } ;
33
40
} else {
34
41
let gutter = ' ' . repeat ( 4 ) ;
35
- let space = opts . cacert ? ' ' . repeat ( 2 ) : '' ;
42
+ let space = hasCA ? ' ' . repeat ( 2 ) : '' ;
36
43
let out = 'Certificate component(s) not found at locations provided!\n' ;
37
44
out += colors . bold . white ( '--key ' ) + space + gutter + colors . italic . dim ( key ) + '\n' ;
38
45
out += colors . bold . white ( '--cert' ) + space + gutter + colors . italic . dim ( cert ) ;
39
- if ( opts . cacert ) out += '\n' + colors . bold . white ( '--cacert' ) + gutter + colors . italic . dim ( cacert ) ;
46
+ if ( hasCA ) out += '\n' + colors . bold . white ( '--cacert' ) + gutter + colors . italic . dim ( cacert ) ;
40
47
return log . error ( out ) ;
41
48
}
42
49
} else {
43
- opts . https = true ;
50
+ dev . https = true ;
44
51
log . warn ( 'Relying on self-signed certificate from `webpack-dev-server` internals' ) ;
45
52
}
46
53
}
@@ -83,11 +90,10 @@ module.exports = function (src, opts) {
83
90
} ) ;
84
91
}
85
92
86
- let server = new Server ( c , Object . assign ( c . options . devServer , {
93
+ let server = new Server ( c , Object . assign ( dev , {
87
94
publicPath,
88
95
inline : true ,
89
96
contentBase : src ,
90
- https : opts . https ,
91
97
host : hostname ,
92
98
// @see webpack-dev-server/pull/1486
93
99
// noInfo: true,
0 commit comments