docusaurus/lib/start-server.js
Joel Marcey 7bad58022c Check if a port is in use
Test:

Ran a separate server on port 3000

```
Checking if port 3000 is free...
Extracting translateable strings from files...
Loading translation files...
Generating Metadata for Docs....
Generating Metadata for Docs....
server.js triggered...
Generating Metadata for Docs....
Extracting translateable strings from files...
listening on port: 3000
Open http://localhost:3000/
Port 3000 is in use
```

Fixes #124
2017-10-23 18:32:39 -07:00

51 lines
1.2 KiB
JavaScript
Executable file

#!/usr/bin/env node
/**
* 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.
*/
require("babel-register")({
babelrc: false,
only: [__dirname, process.cwd() + "/core"],
plugins: [require("./server/translate-plugin.js")],
presets: ["react", "env"]
});
// For verifying port usage
const tcpPortUsed = require('tcp-port-used');
// initial check that required files are present
const chalk = require("chalk");
const fs = require("fs");
const CWD = process.cwd();
if (!fs.existsSync(CWD + "/siteConfig.js")) {
console.error(
chalk.red("Error: No siteConfig.js file found in website folder!")
);
process.exit(1);
}
const program = require("commander");
program.option("--port <number>", "Specify port number").parse(process.argv);
const port = program.port || 3000;
console.log("Checking if port " + port + " is free...");
tcpPortUsed.check(port, "localhost")
.then(function(inUse) {
if (inUse) {
console.error(
chalk.red("Port " + port + " is in use")
);
process.exit(1);
}
});
// start local server on specified port
const server = require("./server/server.js");
server(port);