From c25b1f0c09d774c5582ff6696b13c0ffb80396bc Mon Sep 17 00:00:00 2001 From: FRIN Yvonnick Date: Mon, 8 Apr 2019 21:23:11 +0200 Subject: [PATCH 1/7] :sparkles: Ask user which package manager he wants to use --- packages/gatsby-cli/package.json | 1 + packages/gatsby-cli/src/init-starter.js | 26 +++++++++++++++++++++++-- yarn.lock | 13 +++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/packages/gatsby-cli/package.json b/packages/gatsby-cli/package.json index 9eb1d9242399a..094b68342c971 100644 --- a/packages/gatsby-cli/package.json +++ b/packages/gatsby-cli/package.json @@ -27,6 +27,7 @@ "node-fetch": "2.3.0", "opentracing": "^0.14.3", "pretty-error": "^2.1.1", + "prompts": "^2.0.4", "resolve-cwd": "^2.0.0", "source-map": "^0.5.7", "stack-trace": "^0.0.10", diff --git a/packages/gatsby-cli/src/init-starter.js b/packages/gatsby-cli/src/init-starter.js index 5c5742aba86fd..b6ae9b27a8238 100644 --- a/packages/gatsby-cli/src/init-starter.js +++ b/packages/gatsby-cli/src/init-starter.js @@ -8,6 +8,7 @@ const report = require(`./reporter`) const url = require(`url`) const existsSync = require(`fs-exists-cached`).sync const { trackCli, trackError } = require(`gatsby-telemetry`) +const prompts = require(`prompts`) const spawn = (cmd: string, options: any) => { const [file, ...args] = cmd.split(/\s+/) return execa(file, args, { stdio: `inherit`, ...options }) @@ -67,8 +68,29 @@ const install = async rootPath => { process.chdir(rootPath) try { - let cmd = shouldUseYarn() ? spawn(`yarnpkg`) : spawn(`npm install`) - await cmd + const npmCmd = `npm install` + let response = npmCmd + if (shouldUseYarn()) { + const promptsAnswer = await prompts([ + { + type: `select`, + name: `package_manager`, + message: `Which package manager would you like to use ?`, + choices: [ + { title: `yarn`, value: `yarnpkg` }, + { title: `npm`, value: npmCmd }, + ], + max: 1, + }, + ]) + response = promptsAnswer.package_manager + } + if (response.includes(`yarn`)) { + await spawn(`rm package-lock.json`) + } else { + await spawn(`rm yarn.lock`) + } + await spawn(response) } finally { process.chdir(prevDir) } diff --git a/yarn.lock b/yarn.lock index bf572340a535b..40455a1c00e47 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13106,6 +13106,11 @@ kleur@^3.0.0: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.1.tgz#4f5b313f5fa315432a400f19a24db78d451ede62" integrity sha512-P3kRv+B+Ra070ng2VKQqW4qW7gd/v3iD8sy/zOdcYRsfiD+QBokQNOps/AfP6Hr48cBhIIBFWckB9aO+IZhrWg== +kleur@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + last-call-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" @@ -16934,6 +16939,14 @@ prompts@^2.0.1: kleur "^3.0.0" sisteransi "^1.0.0" +prompts@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.4.tgz#179f9d4db3128b9933aa35f93a800d8fce76a682" + integrity sha512-HTzM3UWp/99A0gk51gAegwo1QRYA7xjcZufMNe33rCclFszUYAuHe1fIN/3ZmiHeGPkUsNaRyQm1hHOfM0PKxA== + dependencies: + kleur "^3.0.2" + sisteransi "^1.0.0" + promzard@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" From ea3513e9d23d4f6894b51cf70e6a3bc3743994ea Mon Sep 17 00:00:00 2001 From: FRIN Yvonnick Date: Tue, 9 Apr 2019 00:05:19 +0200 Subject: [PATCH 2/7] :ok_hand: Take care of @sidharthachatterjee review --- packages/gatsby-cli/package.json | 1 + packages/gatsby-cli/src/init-starter.js | 7 ++++++- yarn.lock | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/gatsby-cli/package.json b/packages/gatsby-cli/package.json index 094b68342c971..39638616295ff 100644 --- a/packages/gatsby-cli/package.json +++ b/packages/gatsby-cli/package.json @@ -14,6 +14,7 @@ "@babel/runtime": "^7.0.0", "bluebird": "^3.5.0", "common-tags": "^1.4.0", + "configstore": "^4.0.0", "convert-hrtime": "^2.0.0", "core-js": "^2.5.0", "envinfo": "^5.8.1", diff --git a/packages/gatsby-cli/src/init-starter.js b/packages/gatsby-cli/src/init-starter.js index b6ae9b27a8238..c4a865e0bc53c 100644 --- a/packages/gatsby-cli/src/init-starter.js +++ b/packages/gatsby-cli/src/init-starter.js @@ -1,5 +1,6 @@ /* @flow */ const { execSync } = require(`child_process`) +const Configstore = require(`configstore`) const execa = require(`execa`) const hostedGitInfo = require(`hosted-git-info`) const fs = require(`fs-extra`) @@ -14,6 +15,9 @@ const spawn = (cmd: string, options: any) => { return execa(file, args, { stdio: `inherit`, ...options }) } +const pkg = require(`../package.json`) +const conf = new Configstore(pkg.name, {}) + // Checks the existence of yarn package // We use yarnpkg instead of yarn to avoid conflict with Hadoop yarn // Refer to https://github.com/yarnpkg/yarn/issues/673 @@ -80,11 +84,12 @@ const install = async rootPath => { { title: `yarn`, value: `yarnpkg` }, { title: `npm`, value: npmCmd }, ], - max: 1, + initial: 0, }, ]) response = promptsAnswer.package_manager } + conf.set(`package_manager`, response) if (response.includes(`yarn`)) { await spawn(`rm package-lock.json`) } else { diff --git a/yarn.lock b/yarn.lock index 40455a1c00e47..99702aef2812c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6305,7 +6305,7 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -configstore@4.0.0: +configstore@4.0.0, configstore@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== From dc63689fc6c00b2ef24bf5ff5a46c56a0a3a6082 Mon Sep 17 00:00:00 2001 From: Ward Peeters Date: Tue, 9 Apr 2019 08:45:47 +0200 Subject: [PATCH 3/7] Update packages/gatsby-cli/src/init-starter.js Co-Authored-By: frinyvonnick --- packages/gatsby-cli/src/init-starter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gatsby-cli/src/init-starter.js b/packages/gatsby-cli/src/init-starter.js index c4a865e0bc53c..e437d4f691a0c 100644 --- a/packages/gatsby-cli/src/init-starter.js +++ b/packages/gatsby-cli/src/init-starter.js @@ -16,7 +16,7 @@ const spawn = (cmd: string, options: any) => { } const pkg = require(`../package.json`) -const conf = new Configstore(pkg.name, {}) +const conf = new Configstore(`gatsby`, {}, { globalConfigPath: true }) // Checks the existence of yarn package // We use yarnpkg instead of yarn to avoid conflict with Hadoop yarn From ee20ca5aafbc0d46a30d4b729c77dc2ddaa0945a Mon Sep 17 00:00:00 2001 From: FRIN Yvonnick Date: Tue, 9 Apr 2019 08:50:36 +0200 Subject: [PATCH 4/7] :ok_hand: Take care of @wardpeet review --- packages/gatsby-telemetry/package.json | 2 +- yarn.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/gatsby-telemetry/package.json b/packages/gatsby-telemetry/package.json index 9a69c60fcc8e6..eb38df9592749 100644 --- a/packages/gatsby-telemetry/package.json +++ b/packages/gatsby-telemetry/package.json @@ -11,7 +11,7 @@ "@babel/runtime": "^7.0.0", "bluebird": "^3.5.0", "ci-info": "2.0.0", - "configstore": "4.0.0", + "configstore": "^4.0.0", "envinfo": "^5.8.1", "fs-extra": "^7.0.1", "is-docker": "1.1.0", diff --git a/yarn.lock b/yarn.lock index 99702aef2812c..166ea7b0aa7ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6305,10 +6305,10 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -configstore@4.0.0, configstore@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" - integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== +configstore@^3.0.0, configstore@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== dependencies: dot-prop "^4.1.0" graceful-fs "^4.1.2" @@ -6317,10 +6317,10 @@ configstore@4.0.0, configstore@^4.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" -configstore@^3.0.0, configstore@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== +configstore@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" + integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== dependencies: dot-prop "^4.1.0" graceful-fs "^4.1.2" From c5cbb1902cf6915ff64677ed555daa19d2895d98 Mon Sep 17 00:00:00 2001 From: FRIN Yvonnick Date: Tue, 9 Apr 2019 08:52:24 +0200 Subject: [PATCH 5/7] :fire: Remove unused statement --- packages/gatsby-cli/src/init-starter.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/gatsby-cli/src/init-starter.js b/packages/gatsby-cli/src/init-starter.js index e437d4f691a0c..a12b3408d9552 100644 --- a/packages/gatsby-cli/src/init-starter.js +++ b/packages/gatsby-cli/src/init-starter.js @@ -15,7 +15,6 @@ const spawn = (cmd: string, options: any) => { return execa(file, args, { stdio: `inherit`, ...options }) } -const pkg = require(`../package.json`) const conf = new Configstore(`gatsby`, {}, { globalConfigPath: true }) // Checks the existence of yarn package From a081cc7497ec886902a5e01af60bcb5915d9c65f Mon Sep 17 00:00:00 2001 From: FRIN Yvonnick Date: Wed, 10 Apr 2019 08:41:55 +0200 Subject: [PATCH 6/7] :ok_hand: Take care of @jamo review --- packages/gatsby-cli/src/init-starter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/gatsby-cli/src/init-starter.js b/packages/gatsby-cli/src/init-starter.js index a12b3408d9552..73751ded27135 100644 --- a/packages/gatsby-cli/src/init-starter.js +++ b/packages/gatsby-cli/src/init-starter.js @@ -90,9 +90,9 @@ const install = async rootPath => { } conf.set(`package_manager`, response) if (response.includes(`yarn`)) { - await spawn(`rm package-lock.json`) + fs.unlinkSync(`package-lock.json`) } else { - await spawn(`rm yarn.lock`) + fs.unlinkSync(`yarn.lock`) } await spawn(response) } finally { From 5d2e6a1bcbed7ac6a4195171277651e36432a9e5 Mon Sep 17 00:00:00 2001 From: Ward Peeters Date: Thu, 11 Apr 2019 11:29:32 +0200 Subject: [PATCH 7/7] replace unlinksync with remove async --- packages/gatsby-cli/src/init-starter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/gatsby-cli/src/init-starter.js b/packages/gatsby-cli/src/init-starter.js index 73751ded27135..4ddd545f3f1bb 100644 --- a/packages/gatsby-cli/src/init-starter.js +++ b/packages/gatsby-cli/src/init-starter.js @@ -90,9 +90,9 @@ const install = async rootPath => { } conf.set(`package_manager`, response) if (response.includes(`yarn`)) { - fs.unlinkSync(`package-lock.json`) + await fs.remove(`package-lock.json`) } else { - fs.unlinkSync(`yarn.lock`) + await fs.remove(`yarn.lock`) } await spawn(response) } finally {