docusaurus/lib/server/liveReloadServer.js
Tom Auger bbef20d345 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
2018-09-13 02:03:52 +08:00

38 lines
872 B
JavaScript

/**
* Copyright (c) 2017-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const gaze = require('gaze');
const tinylr = require('tiny-lr');
const readMetadata = require('./readMetadata.js');
let reloadScriptUrl;
function start(port) {
process.env.NODE_ENV = 'development';
const server = tinylr();
server.listen(port, () => {
console.log('LiveReload server started on port %d', port);
});
gaze(
[`../${readMetadata.getDocsPath()}/**/*`, '**/*', '!node_modules/**/*'],
function() {
this.on('all', () => {
server.notifyClients(['/']);
});
}
);
reloadScriptUrl = `http://localhost:${port}/livereload.js`;
}
const getReloadScriptUrl = () => reloadScriptUrl;
module.exports = {
start,
getReloadScriptUrl,
};