diff --git a/package.json b/package.json index 76555a6a0b9..eaab334d4c3 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "react-scripts": "./bin/react-scripts.js" }, "dependencies": { - "@timer/detect-port": "1.1.2", + "@timer/detect-port": "1.1.3", "address": "1.0.1", "autoprefixer": "7.1.0", "babel-core": "6.24.1", diff --git a/scripts/start.js b/scripts/start.js index fb53543aa5d..858e39cdc49 100644 --- a/scripts/start.js +++ b/scripts/start.js @@ -140,33 +140,42 @@ function run(port) { // We attempt to use the default port but if it is busy, we offer the user to // run on a different port. `detect()` Promise resolves to the next free port. -detect(DEFAULT_PORT, HOST).then(port => { - if (port === DEFAULT_PORT) { - run(port); - return; - } +detect(DEFAULT_PORT, HOST).then( + port => { + if (port === DEFAULT_PORT) { + run(port); + return; + } - if (isInteractive) { - clearConsole(); - const existingProcess = getProcessForPort(DEFAULT_PORT); - const question = { - type: 'confirm', - name: 'shouldChangePort', - message: chalk.yellow( - `Something is already running on port ${DEFAULT_PORT}.` + - `${existingProcess ? ` Probably:\n ${existingProcess}` : ''}` - ) + '\n\nWould you like to run the app on another port instead?', - default: true, - }; - - inquirer.prompt(question).then(answer => { - if (answer.shouldChangePort) { - run(port); - } - }); - } else { + if (isInteractive) { + clearConsole(); + const existingProcess = getProcessForPort(DEFAULT_PORT); + const question = { + type: 'confirm', + name: 'shouldChangePort', + message: chalk.yellow( + `Something is already running on port ${DEFAULT_PORT}.` + + `${existingProcess ? ` Probably:\n ${existingProcess}` : ''}` + ) + '\n\nWould you like to run the app on another port instead?', + default: true, + }; + + inquirer.prompt(question).then(answer => { + if (answer.shouldChangePort) { + run(port); + } + }); + } else { + console.log( + chalk.red(`Something is already running on port ${DEFAULT_PORT}.`) + ); + } + }, + err => { console.log( - chalk.red(`Something is already running on port ${DEFAULT_PORT}.`) + chalk.red(`Could not find an open port at ${chalk.bold(HOST)}.`) ); + console.log('Network error message: ' + err.message || err); + console.log(); } -}); +);