|
|
@@ -1,7 +1,9 @@
|
|
|
const debug = require('debug')('crowi:crowi:dev');
|
|
|
const path = require('path');
|
|
|
const webpack = require('webpack');
|
|
|
-const helpers = require('./helpers')
|
|
|
+const helpers = require('./helpers');
|
|
|
+
|
|
|
+const LRWebSocketServer = require('livereload-server/lib/server');
|
|
|
|
|
|
class CrowiDev {
|
|
|
|
|
|
@@ -16,6 +18,33 @@ class CrowiDev {
|
|
|
}
|
|
|
|
|
|
init() {
|
|
|
+ this.hackLRWebSocketServer();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * prevent to crash socket with:
|
|
|
+ * -------------------------------------------------
|
|
|
+ * Error: read ECONNRESET
|
|
|
+ * at exports._errnoException (util.js:1022:11)
|
|
|
+ * at TCP.onread (net.js:569:26)
|
|
|
+ * -------------------------------------------------
|
|
|
+ *
|
|
|
+ * @see https://github.com/napcs/node-livereload/pull/15
|
|
|
+ *
|
|
|
+ * @memberOf CrowiDev
|
|
|
+ */
|
|
|
+ hackLRWebSocketServer() {
|
|
|
+ const orgCreateConnection = LRWebSocketServer.prototype._createConnection;
|
|
|
+
|
|
|
+ // replace https://github.com/livereload/livereload-server/blob/v0.2.3/lib/server.coffee#L74
|
|
|
+ LRWebSocketServer.prototype._createConnection = function(socket) {
|
|
|
+ // call original method with substituting 'this' obj
|
|
|
+ orgCreateConnection.call(this, socket);
|
|
|
+
|
|
|
+ socket.on('error', (err) => {
|
|
|
+ console.warn(`[WARN] Worthless error in client socket: '${err}'`);
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|