summaryrefslogtreecommitdiff
path: root/packages/create-astro/src/utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/create-astro/src/utils.ts')
-rw-r--r--packages/create-astro/src/utils.ts14
1 files changed, 6 insertions, 8 deletions
diff --git a/packages/create-astro/src/utils.ts b/packages/create-astro/src/utils.ts
index 52e56f5f0..892e01076 100644
--- a/packages/create-astro/src/utils.ts
+++ b/packages/create-astro/src/utils.ts
@@ -61,16 +61,14 @@ export async function rewriteFiles(projectName: string) {
return Promise.all(tasks);
}
-export async function prepareTemplate(use: 'npm' | 'yarn', name: string, dest: string) {
- const projectName = dest;
- dest = resolve(dest);
- const template = fileURLToPath(new URL(`./templates/${name}.tgz`, import.meta.url));
+export async function prepareTemplate(options: { use: 'npm' | 'yarn'; templateName: string; projectName: string; skipInstall?: boolean }) {
+ const { use, templateName, projectName, skipInstall } = options;
+ const dest = resolve(projectName);
+ const template = fileURLToPath(new URL(`./templates/${templateName}.tgz`, import.meta.url));
await decompress(template, dest);
await rewriteFiles(projectName);
- try {
- await run(use, use === 'npm' ? 'i' : null, dest);
- } catch (e) {
- cleanup(true);
+ if (!skipInstall) {
+ await run(use, use === 'npm' ? 'i' : null, dest).catch(() => cleanup(true));
}
isDone = true;
return;