diff --git a/knip.json b/knip.json index bdb68a7aa..c180871c4 100644 --- a/knip.json +++ b/knip.json @@ -28,6 +28,7 @@ "test/fixtures/*" ], "ignoreDependencies": [ + "@clack/prompts", "c12", "confbox", "consola", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 42a5a5607..e8f1a71af 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -32,6 +32,7 @@ "prepack": "tsdown" }, "devDependencies": { + "@clack/prompts": "^1.0.0-alpha.6", "@nuxt/kit": "^4.2.0", "@nuxt/schema": "^4.2.0", "@nuxt/test-utils": "^3.20.1", diff --git a/packages/nuxi/src/commands/init.ts b/packages/nuxi/src/commands/init.ts index 0fdcbcc4a..92ee93b09 100644 --- a/packages/nuxi/src/commands/init.ts +++ b/packages/nuxi/src/commands/init.ts @@ -5,6 +5,7 @@ import type { PackageManagerName } from 'nypm' import { existsSync } from 'node:fs' import process from 'node:process' +import * as clack from '@clack/prompts' import { defineCommand } from 'citty' import { colors } from 'consola/utils' import { downloadTemplate, startShell } from 'giget' @@ -466,22 +467,28 @@ export default defineCommand({ await runCommand(addModuleCommand, args) } + logger.log(`\n✨ Nuxt project has been created with the \`${template.name}\` template.\n`) + // Display next steps - logger.log( - `\n✨ Nuxt project has been created with the \`${template.name}\` template. Next steps:`, - ) const relativeTemplateDir = relative(process.cwd(), template.dir) || '.' const runCmd = selectedPackageManager === 'deno' ? 'task' : 'run' const nextSteps = [ !ctx.args.shell && relativeTemplateDir.length > 1 - && `\`cd ${relativeTemplateDir}\``, - `Start development server with \`${selectedPackageManager} ${runCmd} dev\``, + && colors.cyan(`cd ${relativeTemplateDir}`), + colors.cyan(`${selectedPackageManager} ${runCmd} dev`), ].filter(Boolean) - for (const step of nextSteps) { - logger.log(` › ${step}`) - } + clack.box(`\n${nextSteps.map(step => ` › ${step}`).join('\n')}\n`, ` 👉 Next steps `, { + contentAlign: 'left', + titleAlign: 'left', + width: 'auto', + titlePadding: 2, + contentPadding: 2, + rounded: true, + includePrefix: false, + formatBorder: (text: string) => `${themeColor + text}\x1B[0m`, + }) if (ctx.args.shell) { startShell(template.dir) diff --git a/packages/nuxt-cli/package.json b/packages/nuxt-cli/package.json index 2669f497e..7208c4622 100644 --- a/packages/nuxt-cli/package.json +++ b/packages/nuxt-cli/package.json @@ -33,6 +33,7 @@ "prepack": "tsdown" }, "dependencies": { + "@clack/prompts": "^1.0.0-alpha.6", "c12": "^3.3.1", "citty": "^0.1.6", "confbox": "^0.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8401bf8c..40cf7873e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -110,6 +110,9 @@ importers: packages/nuxi: devDependencies: + '@clack/prompts': + specifier: ^1.0.0-alpha.6 + version: 1.0.0-alpha.6 '@nuxt/kit': specifier: ^4.2.0 version: 4.2.0(magicast@0.5.1) @@ -236,6 +239,9 @@ importers: packages/nuxt-cli: dependencies: + '@clack/prompts': + specifier: ^1.0.0-alpha.6 + version: 1.0.0-alpha.6 c12: specifier: ^3.3.1 version: 3.3.1(magicast@0.3.5) @@ -574,9 +580,15 @@ packages: '@clack/core@0.5.0': resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} + '@clack/core@1.0.0-alpha.6': + resolution: {integrity: sha512-eG5P45+oShFG17u9I1DJzLkXYB1hpUgTLi32EfsMjSHLEqJUR8BOBCVFkdbUX2g08eh/HCi6UxNGpPhaac1LAA==} + '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} + '@clack/prompts@1.0.0-alpha.6': + resolution: {integrity: sha512-75NCtYOgDHVBE2nLdKPTDYOaESxO0GLAKC7INREp5VbS988Xua1u+588VaGlcvXiLc/kSwc25Cd+4PeTSpY6QQ==} + '@cloudflare/kv-asset-handler@0.4.0': resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} engines: {node: '>=18.0.0'} @@ -5763,12 +5775,23 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 + '@clack/core@1.0.0-alpha.6': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + '@clack/prompts@0.11.0': dependencies: '@clack/core': 0.5.0 picocolors: 1.1.1 sisteransi: 1.0.5 + '@clack/prompts@1.0.0-alpha.6': + dependencies: + '@clack/core': 1.0.0-alpha.6 + picocolors: 1.1.1 + sisteransi: 1.0.5 + '@cloudflare/kv-asset-handler@0.4.0': dependencies: mime: 3.0.0