From a3b89a52300af359c6ed6d4b97c0dc2c35a8ed66 Mon Sep 17 00:00:00 2001 From: Max Leiter Date: Mon, 23 Jan 2023 12:10:45 -0800 Subject: [PATCH] create-next-app: warn if project dir isn't empty before prompts (#45195) --- packages/create-next-app/index.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/create-next-app/index.ts b/packages/create-next-app/index.ts index c0485c9105052..5612a1fddefde 100644 --- a/packages/create-next-app/index.ts +++ b/packages/create-next-app/index.ts @@ -11,6 +11,8 @@ import { getPkgManager } from './helpers/get-pkg-manager' import { validateNpmName } from './helpers/validate-pkg' import packageJson from './package.json' import ciInfo from 'ci-info' +import { isFolderEmpty } from './helpers/is-folder-empty' +import fs from 'fs' let projectPath: string = '' @@ -180,6 +182,17 @@ async function run(): Promise { process.exit(1) } + /** + * Verify the project dir is empty or doesn't exist + */ + const root = path.resolve(resolvedProjectPath) + const appName = path.basename(root) + const folderExists = fs.existsSync(root) + + if (folderExists && !isFolderEmpty(root, appName)) { + process.exit(1) + } + const example = typeof program.example === 'string' && program.example.trim() const preferences = (conf.get('preferences') || {}) as Record< string,