webpack-dev-server 2.9.3 → 2.9.7

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.
@@ -390,8 +390,9 @@ function startDevServer(webpackOptions, options) {
390
390
 
391
391
  ['SIGINT', 'SIGTERM'].forEach((sig) => {
392
392
  process.on(sig, () => {
393
- server.close();
394
- process.exit(); // eslint-disable-line no-process-exit
393
+ server.close(() => {
394
+ process.exit(); // eslint-disable-line no-process-exit
395
+ });
395
396
  });
396
397
  });
397
398
 
package/lib/Server.js CHANGED
@@ -13,6 +13,7 @@ const del = require('del');
13
13
  const express = require('express');
14
14
  const httpProxyMiddleware = require('http-proxy-middleware');
15
15
  const ip = require('ip');
16
+ const killable = require('killable');
16
17
  const serveIndex = require('serve-index');
17
18
  const historyApiFallback = require('connect-history-api-fallback');
18
19
  const selfsigned = require('selfsigned');
@@ -49,6 +50,7 @@ function Server(compiler, options) {
49
50
  this.allowedHosts = options.allowedHosts;
50
51
  this.sockets = [];
51
52
  this.contentBaseWatchers = [];
53
+ this.watchOptions = options.watchOptions || {};
52
54
 
53
55
  // Listening for events
54
56
  const invalidPlugin = () => {
@@ -322,7 +324,9 @@ function Server(compiler, options) {
322
324
  },
323
325
 
324
326
  before: () => {
325
- if (typeof options.before === 'function') { options.before(app, this); }
327
+ if (typeof options.before === 'function') {
328
+ options.before(app, this);
329
+ }
326
330
  },
327
331
 
328
332
  middleware: () => {
@@ -474,6 +478,8 @@ function Server(compiler, options) {
474
478
  this.listeningApp = http.createServer(app);
475
479
  }
476
480
 
481
+ killable(this.listeningApp);
482
+
477
483
  // Proxy websockets without the initial http request
478
484
  // https://github.com/chimurai/http-proxy-middleware#external-websocket-upgrade
479
485
  websocketProxies.forEach(function (wsProxy) {
@@ -610,14 +616,15 @@ Server.prototype.close = function (callback) {
610
616
  sock.close();
611
617
  });
612
618
  this.sockets = [];
613
- this.listeningApp.close(() => {
614
- this.middleware.close(callback);
615
- });
616
619
 
617
620
  this.contentBaseWatchers.forEach((watcher) => {
618
621
  watcher.close();
619
622
  });
620
623
  this.contentBaseWatchers = [];
624
+
625
+ this.listeningApp.kill(() => {
626
+ this.middleware.close(callback);
627
+ });
621
628
  };
622
629
 
623
630
  Server.prototype.sockWrite = function (sockets, type, data) {
@@ -657,7 +664,24 @@ Server.prototype._sendStats = function (sockets, stats, force) {
657
664
  };
658
665
 
659
666
  Server.prototype._watch = function (watchPath) {
660
- const watcher = chokidar.watch(watchPath).on('change', () => {
667
+ // duplicate the same massaging of options that watchpack performs
668
+ // https://github.com/webpack/watchpack/blob/master/lib/DirectoryWatcher.js#L49
669
+ // this isn't an elegant solution, but we'll improve it in the future
670
+ const usePolling = this.watchOptions.poll ? true : undefined; // eslint-disable-line no-undefined
671
+ const interval = typeof this.watchOptions.poll === 'number' ? this.watchOptions.poll : undefined; // eslint-disable-line no-undefined
672
+ const options = {
673
+ ignoreInitial: true,
674
+ persistent: true,
675
+ followSymlinks: false,
676
+ depth: 0,
677
+ atomic: false,
678
+ alwaysStat: true,
679
+ ignorePermissionErrors: true,
680
+ ignored: this.watchOptions.ignored,
681
+ usePolling,
682
+ interval
683
+ };
684
+ const watcher = chokidar.watch(watchPath, options).on('change', () => {
661
685
  this.sockWrite(this.sockets, 'content-changed');
662
686
  });
663
687
 
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "webpack-dev-server",
3
- "version": "2.9.3",
3
+ "version": "2.9.7",
4
4
  "description": "Serves a webpack app. Updates the browser on changes.",
5
5
  "license": "MIT",
6
6
  "repository": "webpack/webpack-dev-server",
7
7
  "author": "Tobias Koppers @sokra",
8
- "homepage": "http://github.com/webpack/webpack-dev-server",
8
+ "homepage": "https://github.com/webpack/webpack-dev-server",
9
9
  "maintainers": [
10
10
  {
11
11
  "name": "Andrew Powell",
@@ -24,11 +24,12 @@
24
24
  "cover": "istanbul cover node_modules/mocha/bin/_mocha",
25
25
  "lint": "eslint bin lib test examples client/{index,live,socket,sockjs,overlay,webpack.config}.js",
26
26
  "mocha": "mocha --full-trace --check-leaks",
27
- "prepublish": "npm run -s build:live && npm run -s build:index && npm run -s build:sockjs",
27
+ "prepublish": "(rm ssl/*.pem || true) && npm run -s build:live && npm run -s build:index && npm run -s build:sockjs",
28
28
  "test": "npm run lint && npm run mocha",
29
29
  "build:live": "webpack ./client/live.js client/live.bundle.js --color --config client/webpack.config.js",
30
30
  "build:index": "webpack ./client/index.js client/index.bundle.js --color --config client/webpack.config.js",
31
- "build:sockjs": "webpack ./client/sockjs.js client/sockjs.bundle.js --color --config client/webpack.sockjs.config.js"
31
+ "build:sockjs": "webpack ./client/sockjs.js client/sockjs.bundle.js --color --config client/webpack.sockjs.config.js",
32
+ "webpack-dev-server": "cd $INIT_CWD && node ../../../bin/webpack-dev-server.js"
32
33
  },
33
34
  "files": [
34
35
  "lib/",
@@ -48,12 +49,13 @@
48
49
  "connect-history-api-fallback": "^1.3.0",
49
50
  "debug": "^3.1.0",
50
51
  "del": "^3.0.0",
51
- "express": "^4.13.3",
52
+ "express": "^4.16.2",
52
53
  "html-entities": "^1.2.0",
53
54
  "http-proxy-middleware": "~0.17.4",
54
55
  "import-local": "^0.1.1",
55
56
  "internal-ip": "1.2.0",
56
57
  "ip": "^1.1.5",
58
+ "killable": "^1.0.0",
57
59
  "loglevel": "^1.4.1",
58
60
  "opn": "^5.1.0",
59
61
  "portfinder": "^1.0.9",
@@ -73,11 +75,14 @@
73
75
  "eslint": "^4.5.0",
74
76
  "eslint-config-webpack": "^1.2.5",
75
77
  "eslint-plugin-import": "^2.7.0",
78
+ "execa": "^0.8.0",
76
79
  "file-loader": "^0.11.2",
80
+ "html-webpack-plugin": "^2.30.1",
77
81
  "istanbul": "^0.4.5",
78
82
  "jquery": "^3.2.1",
79
83
  "less": "^2.5.1",
80
84
  "less-loader": "^4.0.5",
85
+ "marked": "^0.3.6",
81
86
  "mocha": "^3.0.2",
82
87
  "mocha-sinon": "^2.0.0",
83
88
  "pug": "^2.0.0-beta5",
package/ssl/server.pem DELETED
@@ -1,46 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEowIBAAKCAQEAtoS4CpKBMmqAuoOv0P+RNWctGnwjxLmB/LSNy4rGHiF+f+t/
3
- qr5OWSeZbns/Qn6XMRaC4PaZkE0Y8Gpp8ZzbQPSaOaTeK8N8ZvnfwEcjJApOgW/k
4
- ZJwBx6GfqeRy6ecXpMWZjkiKLT+cz0g9wZDFQBWEOzOjWTk9Oy8ptF9babi2Rbd9
5
- WGFMGEVZI8OI4grP/KDHs0xu20fkeefnJ6CIPjVdmcCF3JhF5Cbh856RID8MunST
6
- lArTY9kWWCtTyI4PFik3xUrTZ48CFduwb+xOYrBysQJcrZxZlbHMfMrIdVdmGhz9
7
- WM8OdgfcT3tsqnSS5HyISpt1YtGFcG7HQAF1fwIDAQABAoIBACPyx/ztFh1D9M7H
8
- mR1k+Mi35Z5NzQ22K/AF79ejIZpVpoCzdZW/ndbZgdLM24zROh4k/OoqJ9zQEpVn
9
- oC5CYrzMcIPiARBFlH8DwBoy6Kz0irnbu/RE9eTH5JaltCx1o6aEdNYdW3nGCbCZ
10
- 3e/9/5u7oSu34/hy2aiKhYBNN8f+j23Sm8DIm8p8Gf42t5JjIuIlI15CUklYilPr
11
- Ygja3xzMWyuFhhkTANDjsCRqaFHr8OEELTPZ9c2LyvIsXeclOo9j11CgHTBIkEPv
12
- I5HSpbm8lFu4LqZhFMewsCXE2IiuxVMsVez7qlSwZUECz2OoY0A/jLZZEEvNTu2O
13
- PI+F1kECgYEA+v/ZhV3YHQZejDcREnRa/4Ps52y19kzFjoe3sOssCrhCKMeG+CL0
14
- c13K6ig9N8e4miMUUK0OptzCQEy2dPwWlbAHTxMeQ3m686EaVnDPcnguyzvdOUEJ
15
- R8Z7LUyLfF9EflwHxpUNcPM+MGgUMdmKlT3xLPEJ6WGu+pQEGIeEjYcCgYEAuiea
16
- B8cLCWfl6xqJQSz6hMO/vuO1UdmURVtYyld9I1SyPDOMvUWi/dds2ExSQvfQ4jDH
17
- 0rpq905+q5BZV0/GsROpCOUdnLGAlvloboYrOhLrXD8H5dAPegjbja/e3WPAmXvj
18
- X1sWbu/QN6gYmup2gc2E/cgKeUPmRr0O2t94lkkCgYBwhK87ZSVTZZ6O1sS1dCmy
19
- 764M1KQBpMrPKTIEgng82fr2kvODWxAgg4RKUf2XetXbayxZOiseTEpcTsdgS/3H
20
- 3qB4J0bi0rgnLSpEY8/rLcs0WkLCvs/tOCHR3cWN3Js01ga6U+kxoClZw96Btla0
21
- ro7mKavazmqFdEMdx+p5EwKBgAVdmNn6ib3mqcDiDey8ACiNf9xfsd0/GT/6hw+l
22
- /+xhx5Vmovrdo/oPGIsPgBuACxxJ7aiMSQMB1zLYwUp7+S0ndOrVt8nJb/xqCfGN
23
- mnddDj2lb3PXUGrjEHkABbt54ZZK9N3NwVLHRMgl5zen5GyPYPLzriGarGuDjYcP
24
- g+lJAoGBAJwxpSW/R5NPMYT3tu9SFJMmAy7noMW5AA4GGE8lhvRAYOWOsZXAek4c
25
- n+8IFJCOe+gwGyqWw6CqOuM+3siAFT4gkA+AKTp/CRBK251dHXdFsGw13xuWXS3O
26
- gG0VbpK/3Z/Ma/+HWygSzJwigIKWgzJLPUiI0Rx1Vd7sTyftK2ur
27
- -----END RSA PRIVATE KEY-----
28
- -----BEGIN CERTIFICATE-----
29
- MIIDJjCCAg6gAwIBAgIJcBBuut3aIvmUMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNV
30
- BAMTCWxvY2FsaG9zdDAeFw0xNzEwMDEyMTU3MjNaFw0xNzEwMzEyMTU3MjNaMBQx
31
- EjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
32
- ggEBALaEuAqSgTJqgLqDr9D/kTVnLRp8I8S5gfy0jcuKxh4hfn/rf6q+TlknmW57
33
- P0J+lzEWguD2mZBNGPBqafGc20D0mjmk3ivDfGb538BHIyQKToFv5GScAcehn6nk
34
- cunnF6TFmY5Iii0/nM9IPcGQxUAVhDszo1k5PTsvKbRfW2m4tkW3fVhhTBhFWSPD
35
- iOIKz/ygx7NMbttH5Hnn5yegiD41XZnAhdyYReQm4fOekSA/DLp0k5QK02PZFlgr
36
- U8iODxYpN8VK02ePAhXbsG/sTmKwcrECXK2cWZWxzHzKyHVXZhoc/VjPDnYH3E97
37
- bKp0kuR8iEqbdWLRhXBux0ABdX8CAwEAAaN7MHkwDAYDVR0TBAUwAwEB/zALBgNV
38
- HQ8EBAMCAvQwXAYDVR0RBFUwU4IJbG9jYWxob3N0ghVsb2NhbGhvc3QubG9jYWxk
39
- b21haW6CBmx2aC5tZYIIKi5sdmgubWWCBVs6OjFdhwR/AAABhxD+gAAAAAAAAAAA
40
- AAAAAAABMA0GCSqGSIb3DQEBCwUAA4IBAQABcNBUVzSJXbNGZ4mR8jDX+098nI6n
41
- noEyQ/kcMRLqP7X2eXS9ks4jcNrFztpKxSheEqU5rB7AVDaerNiOKMlkw9NYKmer
42
- RmlY3SpqtN2h1lJLX1dXRmfUaKwLm+hRGLOjrPPQyFihauzf2t6CeYBZFToqLv0M
43
- BSsvNrrEHJCzM37kcfu7e4fKHPF+hzaxx8acOk7dD2FffgeGzsir0V1mTpoRq6St
44
- LHwOvslK82P3OyDRCWfE6R+YwIz8x2IPFvrRdglZyFfWDKpqDZOf6TKm11dGmulI
45
- 5VnO4SHNk52113QMybBn8ReiKYE+mIUkQ0G7uVyCj5+lGKP6NvP83Nsx
46
- -----END CERTIFICATE-----