webpack-dev-server 4.4.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -109,8 +109,9 @@ Options:
109
109
  --client-web-socket-url-protocol <value> Tells clients connected to devServer to use the provided protocol.
110
110
  --client-web-socket-url-username <value> Tells clients connected to devServer to use the provided username to authenticate.
111
111
  --client-web-socket-url-password <value> Tells clients connected to devServer to use the provided password to authenticate.
112
- --web-socket-server <value> Allows to set web socket server and options (by default 'ws').
112
+ --web-socket-server <value> Deprecated: please use 'webSocketServer.type'/'--web-socket-server-type' option. Allows to set web socket server and options (by default 'ws').
113
113
  --no-web-socket-server Negative 'web-socket-server' option.
114
+ --web-socket-server-type <value> Allows to set web socket server and options (by default 'ws').
114
115
  --compress Enables gzip compression for everything served.
115
116
  --no-compress Disables gzip compression for everything served.
116
117
  --history-api-fallback Allows to proxy requests through a specified index page (by default 'index.html'), useful for Single Page Applications that utilise the HTML5 History API.
@@ -118,9 +119,10 @@ Options:
118
119
  --host <value> Allows to specify a hostname to use.
119
120
  --hot [value] Enables Hot Module Replacement.
120
121
  --no-hot Disables Hot Module Replacement.
121
- --http2 Allows to serve over HTTP/2 using SPDY.
122
+ --http2 Allows to serve over HTTP/2 using SPDY. Deprecated, it will be removed in favor of the `server` option.
122
123
  --no-http2 Does not serve over HTTP/2 using SPDY.
123
- --https Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP).
124
+ --https Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP). Deprecated, it will be removed in favor
125
+ of the `server` option.
124
126
  --no-https Disallows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP).
125
127
  --https-passphrase <value> Passphrase for a pfx file. Deprecated, it will be removed in favor of the `server.options.passphrase` option.
126
128
  --https-request-cert Request for an SSL certificate. Deprecated, it will be removed in favor of the `server.options.requestCert`
package/bin/cli-flags.js CHANGED
@@ -321,7 +321,7 @@ module.exports = {
321
321
  configs: [
322
322
  {
323
323
  description:
324
- "Allows to set web socket server and options (by default 'ws').",
324
+ "Deprecated: please use 'webSocketServer.type'/'--web-socket-server-type' option.",
325
325
  multiple: false,
326
326
  path: "webSocketServer",
327
327
  type: "enum",
@@ -329,7 +329,7 @@ module.exports = {
329
329
  },
330
330
  {
331
331
  description:
332
- "Allows to set web socket server and options (by default 'ws').",
332
+ "Deprecated: please use 'webSocketServer.type'/'--web-socket-server-type' option.",
333
333
  multiple: false,
334
334
  path: "webSocketServer",
335
335
  type: "enum",
@@ -344,6 +344,30 @@ module.exports = {
344
344
  },
345
345
  ],
346
346
 
347
+ description:
348
+ "Deprecated: please use 'webSocketServer.type'/'--web-socket-server-type' option. Allows to set web socket server and options (by default 'ws').",
349
+ simpleType: "string",
350
+ multiple: false,
351
+ },
352
+ "web-socket-server-type": {
353
+ configs: [
354
+ {
355
+ description:
356
+ "Allows to set web socket server and options (by default 'ws').",
357
+ multiple: false,
358
+ path: "webSocketServer.type",
359
+ type: "enum",
360
+ values: ["sockjs", "ws"],
361
+ },
362
+ {
363
+ description:
364
+ "Allows to set web socket server and options (by default 'ws').",
365
+ multiple: false,
366
+ path: "webSocketServer.type",
367
+ type: "string",
368
+ },
369
+ ],
370
+
347
371
  description:
348
372
  "Allows to set web socket server and options (by default 'ws').",
349
373
  simpleType: "string",
@@ -424,11 +448,13 @@ module.exports = {
424
448
  {
425
449
  type: "boolean",
426
450
  multiple: false,
427
- description: "Allows to serve over HTTP/2 using SPDY.",
451
+ description:
452
+ "Allows to serve over HTTP/2 using SPDY. Deprecated, it will be removed in favor of the `server` option.",
428
453
  path: "http2",
429
454
  },
430
455
  ],
431
- description: "Allows to serve over HTTP/2 using SPDY.",
456
+ description:
457
+ "Allows to serve over HTTP/2 using SPDY. Deprecated, it will be removed in favor of the `server` option.",
432
458
  negatedDescription: "Does not serve over HTTP/2 using SPDY.",
433
459
  simpleType: "boolean",
434
460
  multiple: false,
@@ -439,12 +465,12 @@ module.exports = {
439
465
  type: "boolean",
440
466
  multiple: false,
441
467
  description:
442
- "Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP).",
468
+ "Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP). Deprecated, it will be removed in favor of the `server` option.",
443
469
  path: "https",
444
470
  },
445
471
  ],
446
472
  description:
447
- "Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP).",
473
+ "Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP). Deprecated, it will be removed in favor of the `server` option.",
448
474
  negatedDescription:
449
475
  "Disallows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP).",
450
476
  simpleType: "boolean",
package/client/index.js CHANGED
@@ -157,8 +157,6 @@ var onSocketMessage = {
157
157
  if (needShowOverlayForWarnings) {
158
158
  show("warning", _warnings);
159
159
  }
160
-
161
- reloadApp(options, status);
162
160
  },
163
161
  errors: function errors(_errors) {
164
162
  log.error("Errors while compiling. Reload prevented.");
@@ -1880,7 +1880,7 @@ module.exports = function (SockJS, availableTransports) {
1880
1880
  "use strict";
1881
1881
 
1882
1882
 
1883
- var EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
1883
+ var EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
1884
1884
  inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
1885
1885
  JSON3 = __webpack_require__(/*! json3 */ "./node_modules/json3/lib/json3.js"),
1886
1886
  objectUtils = __webpack_require__(/*! ./utils/object */ "./node_modules/sockjs-client/lib/utils/object.js");
@@ -1941,7 +1941,7 @@ module.exports = InfoAjax;
1941
1941
 
1942
1942
 
1943
1943
  var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
1944
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
1944
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
1945
1945
  JSON3 = __webpack_require__(/*! json3 */ "./node_modules/json3/lib/json3.js"),
1946
1946
  XHRLocalObject = __webpack_require__(/*! ./transport/sender/xhr-local */ "./node_modules/sockjs-client/lib/transport/sender/xhr-local.js"),
1947
1947
  InfoAjax = __webpack_require__(/*! ./info-ajax */ "./node_modules/sockjs-client/lib/info-ajax.js");
@@ -1981,7 +1981,7 @@ module.exports = InfoReceiverIframe;
1981
1981
  "use strict";
1982
1982
 
1983
1983
 
1984
- var EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
1984
+ var EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
1985
1985
  inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
1986
1986
  JSON3 = __webpack_require__(/*! json3 */ "./node_modules/json3/lib/json3.js"),
1987
1987
  utils = __webpack_require__(/*! ./utils/event */ "./node_modules/sockjs-client/lib/utils/event.js"),
@@ -2062,7 +2062,7 @@ module.exports = InfoIframe;
2062
2062
  "use strict";
2063
2063
 
2064
2064
 
2065
- var EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
2065
+ var EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
2066
2066
  inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
2067
2067
  urlUtils = __webpack_require__(/*! ./utils/url */ "./node_modules/sockjs-client/lib/utils/url.js"),
2068
2068
  XDR = __webpack_require__(/*! ./transport/sender/xdr */ "./node_modules/sockjs-client/lib/transport/sender/xdr.js"),
@@ -3087,7 +3087,7 @@ __webpack_require__(/*! ./transport/websocket */ "./node_modules/sockjs-client/l
3087
3087
  "use strict";
3088
3088
 
3089
3089
 
3090
- var EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
3090
+ var EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
3091
3091
  inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
3092
3092
  utils = __webpack_require__(/*! ../../utils/event */ "./node_modules/sockjs-client/lib/utils/event.js"),
3093
3093
  urlUtils = __webpack_require__(/*! ../../utils/url */ "./node_modules/sockjs-client/lib/utils/url.js"),
@@ -3416,7 +3416,7 @@ module.exports = HtmlFileTransport;
3416
3416
 
3417
3417
  var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
3418
3418
  JSON3 = __webpack_require__(/*! json3 */ "./node_modules/json3/lib/json3.js"),
3419
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
3419
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
3420
3420
  version = __webpack_require__(/*! ../version */ "./node_modules/sockjs-client/lib/version.js"),
3421
3421
  urlUtils = __webpack_require__(/*! ../utils/url */ "./node_modules/sockjs-client/lib/utils/url.js"),
3422
3422
  iframeUtils = __webpack_require__(/*! ../utils/iframe */ "./node_modules/sockjs-client/lib/utils/iframe.js"),
@@ -3660,7 +3660,7 @@ module.exports = AjaxBasedTransport;
3660
3660
 
3661
3661
 
3662
3662
  var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
3663
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter;
3663
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter);
3664
3664
 
3665
3665
  var debug = function debug() {};
3666
3666
 
@@ -3804,7 +3804,7 @@ module.exports = function (transport) {
3804
3804
 
3805
3805
 
3806
3806
  var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
3807
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter;
3807
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter);
3808
3808
 
3809
3809
  var debug = function debug() {};
3810
3810
 
@@ -3926,7 +3926,7 @@ module.exports = SenderReceiver;
3926
3926
 
3927
3927
 
3928
3928
  var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
3929
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
3929
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
3930
3930
  EventSourceDriver = __webpack_require__(/*! eventsource */ "./node_modules/sockjs-client/lib/transport/browser/eventsource.js");
3931
3931
 
3932
3932
  var debug = function debug() {};
@@ -4007,7 +4007,7 @@ module.exports = EventSourceReceiver;
4007
4007
  var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
4008
4008
  iframeUtils = __webpack_require__(/*! ../../utils/iframe */ "./node_modules/sockjs-client/lib/utils/iframe.js"),
4009
4009
  urlUtils = __webpack_require__(/*! ../../utils/url */ "./node_modules/sockjs-client/lib/utils/url.js"),
4010
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
4010
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
4011
4011
  random = __webpack_require__(/*! ../../utils/random */ "./node_modules/sockjs-client/lib/utils/random.js");
4012
4012
 
4013
4013
  var debug = function debug() {};
@@ -4108,7 +4108,7 @@ var utils = __webpack_require__(/*! ../../utils/iframe */ "./node_modules/sockjs
4108
4108
  browser = __webpack_require__(/*! ../../utils/browser */ "./node_modules/sockjs-client/lib/utils/browser.js"),
4109
4109
  urlUtils = __webpack_require__(/*! ../../utils/url */ "./node_modules/sockjs-client/lib/utils/url.js"),
4110
4110
  inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
4111
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter;
4111
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter);
4112
4112
 
4113
4113
  var debug = function debug() {};
4114
4114
 
@@ -4312,7 +4312,7 @@ module.exports = JsonpReceiver;
4312
4312
 
4313
4313
 
4314
4314
  var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
4315
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter;
4315
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter);
4316
4316
 
4317
4317
  var debug = function debug() {};
4318
4318
 
@@ -4514,7 +4514,7 @@ module.exports = function (url, payload, callback) {
4514
4514
  "use strict";
4515
4515
 
4516
4516
 
4517
- var EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
4517
+ var EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
4518
4518
  inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
4519
4519
  eventUtils = __webpack_require__(/*! ../../utils/event */ "./node_modules/sockjs-client/lib/utils/event.js"),
4520
4520
  browser = __webpack_require__(/*! ../../utils/browser */ "./node_modules/sockjs-client/lib/utils/browser.js"),
@@ -4660,10 +4660,12 @@ module.exports = XHRCorsObject;
4660
4660
  "use strict";
4661
4661
 
4662
4662
 
4663
- var EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
4663
+ var EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
4664
4664
  inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js");
4665
4665
 
4666
- function XHRFake() {
4666
+ function
4667
+ /* method, url, payload, opts */
4668
+ XHRFake() {
4667
4669
  var self = this;
4668
4670
  EventEmitter.call(this);
4669
4671
  this.to = setTimeout(function () {
@@ -4720,7 +4722,7 @@ module.exports = XHRLocalObject;
4720
4722
  var utils = __webpack_require__(/*! ../utils/event */ "./node_modules/sockjs-client/lib/utils/event.js"),
4721
4723
  urlUtils = __webpack_require__(/*! ../utils/url */ "./node_modules/sockjs-client/lib/utils/url.js"),
4722
4724
  inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"),
4723
- EventEmitter = __webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter,
4725
+ EventEmitter = (__webpack_require__(/*! events */ "./node_modules/sockjs-client/lib/event/emitter.js").EventEmitter),
4724
4726
  WebsocketDriver = __webpack_require__(/*! ./driver/websocket */ "./node_modules/sockjs-client/lib/transport/browser/websocket.js");
4725
4727
 
4726
4728
  var debug = function debug() {};
package/lib/Server.js CHANGED
@@ -32,6 +32,7 @@ class Server {
32
32
 
33
33
  this.options = options;
34
34
  this.staticWatchers = [];
35
+ this.listeners = [];
35
36
  // Keep track of websocket proxies for external websocket upgrade.
36
37
  this.webSocketProxies = [];
37
38
  this.sockets = [];
@@ -523,6 +524,17 @@ class Server {
523
524
  const isHTTPs = Boolean(options.https);
524
525
  const isSPDY = Boolean(options.http2);
525
526
 
527
+ if (isHTTPs || isSPDY) {
528
+ // TODO: remove in the next major release
529
+ util.deprecate(
530
+ () => {},
531
+ `'${
532
+ isHTTPs ? "https" : "http2"
533
+ }' option is deprecated. Please use the 'server' option.`,
534
+ `DEP_WEBPACK_DEV_SERVER_${isHTTPs ? "HTTPS" : "HTTP2"}`
535
+ )();
536
+ }
537
+
526
538
  options.server = {
527
539
  type:
528
540
  // eslint-disable-next-line no-nested-ternary
@@ -1157,15 +1169,11 @@ class Server {
1157
1169
 
1158
1170
  let needForceShutdown = false;
1159
1171
 
1160
- const exitProcess = () => {
1161
- // eslint-disable-next-line no-process-exit
1162
- process.exit();
1163
- };
1164
-
1165
1172
  signals.forEach((signal) => {
1166
- process.on(signal, () => {
1173
+ const listener = () => {
1167
1174
  if (needForceShutdown) {
1168
- exitProcess();
1175
+ // eslint-disable-next-line no-process-exit
1176
+ process.exit();
1169
1177
  }
1170
1178
 
1171
1179
  this.logger.info(
@@ -1176,19 +1184,26 @@ class Server {
1176
1184
 
1177
1185
  this.stopCallback(() => {
1178
1186
  if (typeof this.compiler.close === "function") {
1179
- this.compiler.close(exitProcess);
1187
+ this.compiler.close(() => {
1188
+ // eslint-disable-next-line no-process-exit
1189
+ process.exit();
1190
+ });
1180
1191
  } else {
1181
- exitProcess();
1192
+ // eslint-disable-next-line no-process-exit
1193
+ process.exit();
1182
1194
  }
1183
1195
  });
1184
- });
1196
+ };
1197
+
1198
+ this.listeners.push({ name: signal, listener });
1199
+
1200
+ process.on(signal, listener);
1185
1201
  });
1186
1202
  }
1187
1203
 
1188
1204
  // Proxy WebSocket without the initial http request
1189
1205
  // https://github.com/chimurai/http-proxy-middleware#external-websocket-upgrade
1190
- // eslint-disable-next-line func-names
1191
- this.webSocketProxies.forEach(function (webSocketProxy) {
1206
+ this.webSocketProxies.forEach((webSocketProxy) => {
1192
1207
  this.server.on("upgrade", webSocketProxy.upgrade);
1193
1208
  }, this);
1194
1209
  }
@@ -1608,6 +1623,7 @@ class Server {
1608
1623
  });
1609
1624
  }
1610
1625
 
1626
+ // TODO: remove `--web-socket-server` in favor of `--web-socket-server-type`
1611
1627
  createWebSocketServer() {
1612
1628
  this.webSocketServer = new (this.getServerTransport())(this);
1613
1629
  this.webSocketServer.implementation.on("connection", (client, request) => {
@@ -1633,7 +1649,9 @@ class Server {
1633
1649
  ) {
1634
1650
  this.sendMessage([client], "error", "Invalid Host/Origin header");
1635
1651
 
1636
- client.terminate();
1652
+ // With https enabled, the sendMessage above is encrypted asynchronously so not yet sent
1653
+ // Terminate would prevent it sending, so use close to allow it to be sent
1654
+ client.close();
1637
1655
 
1638
1656
  return;
1639
1657
  }
@@ -1701,22 +1719,25 @@ class Server {
1701
1719
  );
1702
1720
  }
1703
1721
 
1704
- runBonjour() {
1705
- const bonjour = require("bonjour")();
1722
+ stopBonjour(callback = () => {}) {
1723
+ this.bonjour.unpublishAll(() => {
1724
+ this.bonjour.destroy();
1725
+
1726
+ if (callback) {
1727
+ callback();
1728
+ }
1729
+ });
1730
+ }
1706
1731
 
1707
- bonjour.publish({
1732
+ runBonjour() {
1733
+ this.bonjour = require("bonjour")();
1734
+ this.bonjour.publish({
1708
1735
  name: `Webpack Dev Server ${os.hostname()}:${this.options.port}`,
1709
1736
  port: this.options.port,
1710
1737
  type: this.options.server.type === "http" ? "http" : "https",
1711
1738
  subtypes: ["webpack"],
1712
1739
  ...this.options.bonjour,
1713
1740
  });
1714
-
1715
- process.on("exit", () => {
1716
- bonjour.unpublishAll(() => {
1717
- bonjour.destroy();
1718
- });
1719
- });
1720
1741
  }
1721
1742
 
1722
1743
  logStatus() {
@@ -2187,13 +2208,21 @@ class Server {
2187
2208
  }
2188
2209
  }
2189
2210
 
2190
- startCallback(callback) {
2211
+ startCallback(callback = () => {}) {
2191
2212
  this.start()
2192
2213
  .then(() => callback(null), callback)
2193
2214
  .catch(callback);
2194
2215
  }
2195
2216
 
2196
2217
  async stop() {
2218
+ if (this.bonjour) {
2219
+ await new Promise((resolve) => {
2220
+ this.stopBonjour(() => {
2221
+ resolve();
2222
+ });
2223
+ });
2224
+ }
2225
+
2197
2226
  this.webSocketProxies = [];
2198
2227
 
2199
2228
  await Promise.all(this.staticWatchers.map((watcher) => watcher.close()));
@@ -2247,9 +2276,15 @@ class Server {
2247
2276
  this.middleware = null;
2248
2277
  }
2249
2278
  }
2279
+
2280
+ // We add listeners to signals when creating a new Server instance
2281
+ // So ensure they are removed to prevent EventEmitter memory leak warnings
2282
+ for (const item of this.listeners) {
2283
+ process.removeListener(item.name, item.listener);
2284
+ }
2250
2285
  }
2251
2286
 
2252
- stopCallback(callback) {
2287
+ stopCallback(callback = () => {}) {
2253
2288
  this.stop()
2254
2289
  .then(() => callback(null), callback)
2255
2290
  .catch(callback);
package/lib/options.json CHANGED
@@ -207,7 +207,7 @@
207
207
  },
208
208
  "HTTP2": {
209
209
  "type": "boolean",
210
- "description": "Allows to serve over HTTP/2 using SPDY.",
210
+ "description": "Allows to serve over HTTP/2 using SPDY. Deprecated, it will be removed in favor of the `server` option.",
211
211
  "link": "https://webpack.js.org/configuration/dev-server/#devserverhttp2"
212
212
  },
213
213
  "HTTPS": {
@@ -382,7 +382,7 @@
382
382
  }
383
383
  }
384
384
  ],
385
- "description": "Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP).",
385
+ "description": "Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP). Deprecated, it will be removed in favor of the `server` option.",
386
386
  "link": "https://webpack.js.org/configuration/dev-server/#devserverhttps"
387
387
  },
388
388
  "HeaderObject": {
@@ -1026,16 +1026,14 @@
1026
1026
  {
1027
1027
  "$ref": "#/definitions/WebSocketServerType"
1028
1028
  }
1029
- ]
1029
+ ],
1030
+ "description": "Deprecated: please use 'webSocketServer.type'/'--web-socket-server-type' option."
1030
1031
  },
1031
1032
  "WebSocketServerFunction": {
1032
1033
  "instanceof": "Function"
1033
1034
  },
1034
1035
  "WebSocketServerObject": {
1035
1036
  "type": "object",
1036
- "cli": {
1037
- "exclude": true
1038
- },
1039
1037
  "properties": {
1040
1038
  "type": {
1041
1039
  "anyOf": [
@@ -1052,7 +1050,10 @@
1052
1050
  },
1053
1051
  "options": {
1054
1052
  "type": "object",
1055
- "additionalProperties": true
1053
+ "additionalProperties": true,
1054
+ "cli": {
1055
+ "exclude": true
1056
+ }
1056
1057
  }
1057
1058
  },
1058
1059
  "additionalProperties": false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack-dev-server",
3
- "version": "4.4.0",
3
+ "version": "4.5.0",
4
4
  "description": "Serves a webpack app. Updates the browser on changes.",
5
5
  "bin": "bin/webpack-dev-server.js",
6
6
  "main": "lib/Server.js",
@@ -66,14 +66,16 @@
66
66
  "@babel/plugin-transform-runtime": "^7.14.5",
67
67
  "@babel/preset-env": "^7.14.5",
68
68
  "@babel/runtime": "^7.14.5",
69
- "@commitlint/cli": "^13.1.0",
70
- "@commitlint/config-conventional": "^13.1.0",
69
+ "@commitlint/cli": "^14.1.0",
70
+ "@commitlint/config-conventional": "^14.1.0",
71
71
  "acorn": "^8.2.4",
72
72
  "babel-jest": "^27.0.2",
73
73
  "babel-loader": "^8.2.2",
74
74
  "body-parser": "^1.19.0",
75
75
  "core-js": "^3.12.1",
76
76
  "css-loader": "^5.2.4",
77
+ "css-tree": "^1.1.3",
78
+ "csstree": "^0.0.3",
77
79
  "eslint": "^8.0.1",
78
80
  "eslint-config-prettier": "^8.3.0",
79
81
  "eslint-config-webpack": "^1.2.5",
@@ -103,7 +105,7 @@
103
105
  "tcp-port-used": "^1.0.2",
104
106
  "typescript": "^4.2.4",
105
107
  "url-loader": "^4.1.1",
106
- "webpack": "^5.54.0",
108
+ "webpack": "^5.64.0",
107
109
  "webpack-cli": "^4.7.2",
108
110
  "webpack-merge": "^5.8.0"
109
111
  },