diff --git a/src/core/initialize.ts b/src/core/initialize.ts index 0ba0bf49..90dd4c1a 100644 --- a/src/core/initialize.ts +++ b/src/core/initialize.ts @@ -59,6 +59,16 @@ export async function initialize(options: { input.template ??= defaultTemplate; input.packageManager ??= options.packageManager; + const isExists = await fs.pathExists(input.directory); + if (isExists) { + const isEmpty = (await fs.readdir(input.directory)).length === 0; + if (!isEmpty) { + consola.error( + `The directory ${path.resolve(input.directory)} is not empty. Aborted.`, + ); + process.exit(1); + } + } await cloneProject(input); const cdPath = path.relative(process.cwd(), path.resolve(input.directory)); @@ -145,6 +155,9 @@ async function cloneProject({ .move( path.join(directory, '_gitignore'), path.join(directory, '.gitignore'), + { + overwrite: true, + }, ) .catch((err) => consola.warn('Failed to move _gitignore to .gitignore:', err),