From bbef20d345b62c200e13688dc6c6b482e0348ddc Mon Sep 17 00:00:00 2001
From: Tom Auger <31711089+tom-auger@users.noreply.github.com>
Date: Wed, 12 Sep 2018 19:03:52 +0100
Subject: [PATCH] fix: live reload port fallback if port is used (#899)
* Move start reload server into separate module
* Find an unused port when starting the live reload server
* Move findUnusedPort into module
* Add tests for findUnusedPort module
* Refactor findUnusedPort
* Move starting of servers into separate module and add tests
* Remove unused constants.js
* Zap extra line breaks
* Add tests for liveReloadServer
* Rename serverController to start
* Move start into lib/server
* Add portfinder package
* Replace findUnusedPort with portfinder
* nits
---
lib/core/Site.js | 13 +-
.../__mocks__/tiny-lr.js} | 6 +-
lib/server/__tests__/liveReloadServer.test.js | 26 ++++
lib/server/__tests__/start.test.js | 138 ++++++++++++++++++
lib/server/liveReloadServer.js | 38 +++++
lib/server/server.js | 26 +---
lib/server/start.js | 51 +++++++
lib/start-server.js | 46 +-----
package.json | 1 +
yarn.lock | 30 ++--
10 files changed, 291 insertions(+), 84 deletions(-)
rename lib/{core/constants.js => server/__mocks__/tiny-lr.js} (69%)
create mode 100644 lib/server/__tests__/liveReloadServer.test.js
create mode 100644 lib/server/__tests__/start.test.js
create mode 100644 lib/server/liveReloadServer.js
create mode 100644 lib/server/start.js
diff --git a/lib/core/Site.js b/lib/core/Site.js
index ad45ac4647..7d83643a58 100644
--- a/lib/core/Site.js
+++ b/lib/core/Site.js
@@ -13,7 +13,7 @@ const Head = require('./Head.js');
const Footer = require(`${process.cwd()}/core/Footer.js`);
const translation = require('../server/translation.js');
-const constants = require('./constants');
+const liveReloadServer = require('../server/liveReloadServer.js');
const {idx} = require('./utils.js');
const CWD = process.cwd();
@@ -36,6 +36,8 @@ class Site extends React.Component {
(this.props.url || 'index.html');
let docsVersion = this.props.version;
+ const liveReloadScriptUrl = liveReloadServer.getReloadScriptUrl();
+
if (!docsVersion && fs.existsSync(`${CWD}/versions.json`)) {
const latestVersion = require(`${CWD}/versions.json`)[0];
docsVersion = latestVersion;
@@ -147,13 +149,8 @@ class Site extends React.Component {
/>
))}
- {process.env.NODE_ENV === 'development' && (
-
- )}
+ {process.env.NODE_ENV === 'development' &&
+ liveReloadScriptUrl && }