From 51aaf3a3bc46dfd27e104d91ee8f165bf789b872 Mon Sep 17 00:00:00 2001 From: Jonathan Felchlin Date: Wed, 30 Aug 2017 23:02:26 -0700 Subject: [PATCH 1/3] Replacing literal 'build' with `buildFolder` variable --- packages/react-dev-utils/printHostingInstructions.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/react-dev-utils/printHostingInstructions.js b/packages/react-dev-utils/printHostingInstructions.js index 2ef25767aa2..802ebb36b82 100644 --- a/packages/react-dev-utils/printHostingInstructions.js +++ b/packages/react-dev-utils/printHostingInstructions.js @@ -35,7 +35,9 @@ function printHostingInstructions( )} field in your ${chalk.cyan('package.json')}.` ); console.log(); - console.log(`The ${chalk.cyan('build')} folder is ready to be deployed.`); + console.log( + `The ${chalk.cyan(buildFolder)} folder is ready to be deployed.` + ); console.log(`To publish it at ${chalk.green(publicUrl)}, run:`); // If script deploy has been added to package.json, skip the instructions if (typeof appPackage.scripts.deploy === 'undefined') { @@ -83,7 +85,9 @@ function printHostingInstructions( )} field in your ${chalk.cyan('package.json')}.` ); console.log(); - console.log(`The ${chalk.cyan('build')} folder is ready to be deployed.`); + console.log( + `The ${chalk.cyan(buildFolder)} folder is ready to be deployed.` + ); console.log(); } else { if (publicUrl) { From 9b208a63dfbcee589ff102d7bac25a634e426acb Mon Sep 17 00:00:00 2001 From: Jonathan Felchlin Date: Wed, 30 Aug 2017 23:47:55 -0700 Subject: [PATCH 2/3] Cleaning up the printHostingInstructions a bit --- .../printHostingInstructions.js | 163 ++++++++---------- 1 file changed, 73 insertions(+), 90 deletions(-) diff --git a/packages/react-dev-utils/printHostingInstructions.js b/packages/react-dev-utils/printHostingInstructions.js index 802ebb36b82..0526e4c6dac 100644 --- a/packages/react-dev-utils/printHostingInstructions.js +++ b/packages/react-dev-utils/printHostingInstructions.js @@ -21,62 +21,32 @@ function printHostingInstructions( buildFolder, useYarn ) { - const publicPathname = url.parse(publicPath).pathname; - if (publicUrl && publicUrl.indexOf('.github.io/') !== -1) { + if (publicUrl && publicUrl.includes('.github.io/')) { // "homepage": "http://user.github.io/project" - console.log( - `The project was built assuming it is hosted at ${chalk.green( - publicPathname - )}.` - ); - console.log( - `You can control this with the ${chalk.green( - 'homepage' - )} field in your ${chalk.cyan('package.json')}.` - ); - console.log(); - console.log( - `The ${chalk.cyan(buildFolder)} folder is ready to be deployed.` - ); - console.log(`To publish it at ${chalk.green(publicUrl)}, run:`); - // If script deploy has been added to package.json, skip the instructions - if (typeof appPackage.scripts.deploy === 'undefined') { - console.log(); - if (useYarn) { - console.log(` ${chalk.cyan('yarn')} add --dev gh-pages`); - } else { - console.log(` ${chalk.cyan('npm')} install --save-dev gh-pages`); - } - console.log(); - console.log( - `Add the following script in your ${chalk.cyan('package.json')}.` - ); - console.log(); - console.log(` ${chalk.dim('// ...')}`); - console.log(` ${chalk.yellow('"scripts"')}: {`); - console.log(` ${chalk.dim('// ...')}`); - console.log( - ` ${chalk.yellow('"predeploy"')}: ${chalk.yellow( - '"npm run build",' - )}` - ); - console.log( - ` ${chalk.yellow('"deploy"')}: ${chalk.yellow( - '"gh-pages -d build"' - )}` - ); - console.log(' }'); - console.log(); - console.log('Then run:'); - } - console.log(); - console.log(` ${chalk.cyan(useYarn ? 'yarn' : 'npm')} run deploy`); - console.log(); + const publicPathname = url.parse(publicPath).pathname; + const hasDeployScript = typeof appPackage.scripts.deploy !== 'undefined'; + printBaseMessage(buildFolder, publicPathname); + + printDeployInstructions(publicUrl, hasDeployScript, useYarn); + } else if (publicPath !== '/') { // "homepage": "http://mywebsite.com/project" + printBaseMessage(buildFolder, publicPath); + + } else { + // "homepage": "http://mywebsite.com" + // or no homepage + printBaseMessage(buildFolder, publicUrl); + + printStaticServerInstructions(useYarn); + } + console.log(); +} + +function printBaseMessage(buildFolder, hostingLocation) { console.log( `The project was built assuming it is hosted at ${chalk.green( - publicPath + hostingLocation || 'the server root' )}.` ); console.log( @@ -84,59 +54,72 @@ function printHostingInstructions( 'homepage' )} field in your ${chalk.cyan('package.json')}.` ); - console.log(); - console.log( - `The ${chalk.cyan(buildFolder)} folder is ready to be deployed.` - ); - console.log(); - } else { - if (publicUrl) { - // "homepage": "http://mywebsite.com" - console.log( - `The project was built assuming it is hosted at ${chalk.green( - publicUrl - )}.` - ); - console.log( - `You can control this with the ${chalk.green( - 'homepage' - )} field in your ${chalk.cyan('package.json')}.` - ); - console.log(); - } else { - // no homepage - console.log( - 'The project was built assuming it is hosted at the server root.' - ); - console.log( - `To override this, specify the ${chalk.green( - 'homepage' - )} in your ${chalk.cyan('package.json')}.` - ); + + if (!hostingLocation) { console.log('For example, add this to build it for GitHub Pages:'); console.log(); + console.log( ` ${chalk.green('"homepage"')} ${chalk.cyan(':')} ${chalk.green( '"http://myname.github.io/myapp"' )}${chalk.cyan(',')}` ); - console.log(); } + console.log(); + console.log( `The ${chalk.cyan(buildFolder)} folder is ready to be deployed.` ); - console.log('You may serve it with a static server:'); - console.log(); - if (!fs.existsSync(`${globalModules}/serve`)) { - if (useYarn) { - console.log(` ${chalk.cyan('yarn')} global add serve`); - } else { - console.log(` ${chalk.cyan('npm')} install -g serve`); - } +} + +function printDeployInstructions(publicUrl, hasDeployScript, useYarn) { + console.log(`To publish it at ${chalk.green(publicUrl)}, run:`); + console.log(); + + // If script deploy has been added to package.json, skip the instructions + if (!hasDeployScript) { + if (useYarn) { + console.log(` ${chalk.cyan('yarn')} add --dev gh-pages`); + } else { + console.log(` ${chalk.cyan('npm')} install --save-dev gh-pages`); } - console.log(` ${chalk.cyan('serve')} -s ${buildFolder}`); console.log(); + + console.log(`Add the following script in your ${chalk.cyan( + 'package.json' + )}.`); + console.log(); + + console.log(` ${chalk.dim('// ...')}`); + console.log(` ${chalk.yellow('"scripts"')}: {`); + console.log(` ${chalk.dim('// ...')}`); + console.log(` ${chalk.yellow('"predeploy"')}: ${chalk.yellow( + '"npm run build",' + )}`); + console.log(` ${chalk.yellow('"deploy"')}: ${chalk.yellow( + '"gh-pages -d build"' + )}`); + console.log(' }'); + console.log(); + + console.log('Then run:'); + console.log(); + } + console.log(` ${chalk.cyan(useYarn ? 'yarn' : 'npm')} run deploy`); +} + +function printStaticServerInstructions(useYarn) { + console.log('You may serve it with a static server:'); + console.log(); + + if (!fs.existsSync(`${globalModules}/serve`)) { + if (useYarn) { + console.log(` ${chalk.cyan('yarn')} global add serve`); + } else { + console.log(` ${chalk.cyan('npm')} install -g serve`); + } } + console.log(` ${chalk.cyan('serve')} -s ${buildFolder}`); } module.exports = printHostingInstructions; From c67617b9193a22b0e630a6b879a8931c30b10a68 Mon Sep 17 00:00:00 2001 From: Jonathan Felchlin Date: Wed, 30 Aug 2017 23:58:01 -0700 Subject: [PATCH 3/3] Fixing undefined variable --- packages/react-dev-utils/printHostingInstructions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-dev-utils/printHostingInstructions.js b/packages/react-dev-utils/printHostingInstructions.js index 0526e4c6dac..713f3f1809e 100644 --- a/packages/react-dev-utils/printHostingInstructions.js +++ b/packages/react-dev-utils/printHostingInstructions.js @@ -38,7 +38,7 @@ function printHostingInstructions( // or no homepage printBaseMessage(buildFolder, publicUrl); - printStaticServerInstructions(useYarn); + printStaticServerInstructions(buildFolder, useYarn); } console.log(); } @@ -108,7 +108,7 @@ function printDeployInstructions(publicUrl, hasDeployScript, useYarn) { console.log(` ${chalk.cyan(useYarn ? 'yarn' : 'npm')} run deploy`); } -function printStaticServerInstructions(useYarn) { +function printStaticServerInstructions(buildFolder, useYarn) { console.log('You may serve it with a static server:'); console.log();