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' && ( -