From 71e6ebdf69210bc5ce8103a62fdc3bd079450d15 Mon Sep 17 00:00:00 2001 From: Oskar Lebuda Date: Sun, 31 Aug 2025 14:09:13 +0200 Subject: [PATCH 1/3] feat(build,dev): add vite and vue version to banner --- packages/nuxi/src/utils/banner.ts | 12 +++++++++++- playground/package.json | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/nuxi/src/utils/banner.ts b/packages/nuxi/src/utils/banner.ts index 693a6830..d30fe35b 100644 --- a/packages/nuxi/src/utils/banner.ts +++ b/packages/nuxi/src/utils/banner.ts @@ -23,6 +23,16 @@ export function showVersions(cwd: string) { } const nuxtVersion = getPkgVersion('nuxt') || getPkgVersion('nuxt-nightly') || getPkgVersion('nuxt3') || getPkgVersion('nuxt-edge') const nitroVersion = getPkgVersion('nitropack') || getPkgVersion('nitropack-nightly') || getPkgVersion('nitropack-edge') + const viteVersion = getPkgVersion('rolldown-vite') || getPkgVersion('vite') || null + const isRolldown = viteVersion?.includes('rolldown') + const vueVersion = getPkgVersion('vue') || null - logger.log(gray(green(`Nuxt ${bold(nuxtVersion)}`) + (nitroVersion ? ` with Nitro ${bold(nitroVersion)}` : ''))) + logger.log( + green(`Nuxt ${bold(nuxtVersion)}`) + + gray(' (with: ') + + (nitroVersion ? gray(`Nitro ${bold(nitroVersion)}`) : '') + + (viteVersion ? gray(`, ${isRolldown ? 'Rolldown-Vite' : 'Vite'} ${bold(viteVersion)}`) : '') + + (vueVersion ? gray(`, Vue ${bold(vueVersion)}`) : '') + + gray(')'), + ) } diff --git a/playground/package.json b/playground/package.json index 0429f3b4..cd36ed47 100644 --- a/playground/package.json +++ b/playground/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "private": true, "scripts": { + "dev": "nuxi dev", "dev:prepare": "nuxt prepare", "test": "vitest" }, From 97d4efdeb1cde87c318f53f7bf8c1968984c7689 Mon Sep 17 00:00:00 2001 From: Oskar Lebuda Date: Sun, 31 Aug 2025 21:27:14 +0200 Subject: [PATCH 2/3] feat(build,dev): add every bundler version --- packages/nuxi/src/commands/build.ts | 2 +- packages/nuxi/src/commands/dev.ts | 2 +- packages/nuxi/src/utils/banner.ts | 40 +++++++++++++++++++++++------ 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/packages/nuxi/src/commands/build.ts b/packages/nuxi/src/commands/build.ts index d3fbb1ec..71c53145 100644 --- a/packages/nuxi/src/commands/build.ts +++ b/packages/nuxi/src/commands/build.ts @@ -38,7 +38,7 @@ export default defineCommand({ const cwd = resolve(ctx.args.cwd || ctx.args.rootDir) - showVersions(cwd) + await showVersions(cwd) const kit = await loadKit(cwd) diff --git a/packages/nuxi/src/commands/dev.ts b/packages/nuxi/src/commands/dev.ts index 91437b0c..648cdd88 100644 --- a/packages/nuxi/src/commands/dev.ts +++ b/packages/nuxi/src/commands/dev.ts @@ -92,7 +92,7 @@ const command = defineCommand({ // Prepare overrideEnv('development') const cwd = resolve(ctx.args.cwd || ctx.args.rootDir) - showVersions(cwd) + await showVersions(cwd) // Load Nuxt Config const { loadNuxtConfig } = await loadKit(cwd) diff --git a/packages/nuxi/src/utils/banner.ts b/packages/nuxi/src/utils/banner.ts index d30fe35b..7cc30a42 100644 --- a/packages/nuxi/src/utils/banner.ts +++ b/packages/nuxi/src/utils/banner.ts @@ -3,35 +3,59 @@ import { readFileSync } from 'node:fs' import { colors } from 'consola/utils' import { resolveModulePath } from 'exsolve' -import { tryResolveNuxt } from './kit' +import { loadKit, tryResolveNuxt } from './kit' import { logger } from './logger' -export function showVersions(cwd: string) { +export async function showVersions(cwd: string) { const { bold, gray, green } = colors const nuxtDir = tryResolveNuxt(cwd) - function getPkgVersion(pkg: string) { + + const kit = await loadKit(cwd) + const config = await kit.loadNuxtConfig({ cwd }) + + function getBuilder(): { name: string, version: string } { + switch (config.builder) { + case '@nuxt/rspack-builder': + return { name: 'Rspack', version: getPkgVersion('@rspack/core') } + case '@nuxt/webpack-builder': + return { name: 'Webpack', version: getPkgVersion('webpack') } + case '@nuxt/vite-builder': + default: { + const pkgJSON = getPkgJSON('vite') + const isRolldown = pkgJSON.name.includes('rolldown') + return { name: isRolldown ? 'Rolldown-Vite' : 'Vite', version: pkgJSON.version } + } + } + } + + function getPkgJSON(pkg: string) { for (const url of [cwd, nuxtDir]) { if (!url) { continue } const p = resolveModulePath(`${pkg}/package.json`, { from: url, try: true }) if (p) { - return JSON.parse(readFileSync(p, 'utf-8')).version as string + return JSON.parse(readFileSync(p, 'utf-8')) } } - return '' + return null } + + function getPkgVersion(pkg: string) { + const pkgJSON = getPkgJSON(pkg) + return pkgJSON?.version ?? '' + } + const nuxtVersion = getPkgVersion('nuxt') || getPkgVersion('nuxt-nightly') || getPkgVersion('nuxt3') || getPkgVersion('nuxt-edge') const nitroVersion = getPkgVersion('nitropack') || getPkgVersion('nitropack-nightly') || getPkgVersion('nitropack-edge') - const viteVersion = getPkgVersion('rolldown-vite') || getPkgVersion('vite') || null - const isRolldown = viteVersion?.includes('rolldown') + const builder = getBuilder() const vueVersion = getPkgVersion('vue') || null logger.log( green(`Nuxt ${bold(nuxtVersion)}`) + gray(' (with: ') + (nitroVersion ? gray(`Nitro ${bold(nitroVersion)}`) : '') - + (viteVersion ? gray(`, ${isRolldown ? 'Rolldown-Vite' : 'Vite'} ${bold(viteVersion)}`) : '') + + gray(`, ${builder.name} ${bold(builder.version)}`) + (vueVersion ? gray(`, Vue ${bold(vueVersion)}`) : '') + gray(')'), ) From 5e7eb73791380dcc400be3327de538fd7bdd41d5 Mon Sep 17 00:00:00 2001 From: Oskar Lebuda Date: Sun, 31 Aug 2025 22:40:06 +0200 Subject: [PATCH 3/3] feat(build,dev): remove await from commands --- packages/nuxi/src/commands/build.ts | 2 +- packages/nuxi/src/commands/dev.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxi/src/commands/build.ts b/packages/nuxi/src/commands/build.ts index 71c53145..d3fbb1ec 100644 --- a/packages/nuxi/src/commands/build.ts +++ b/packages/nuxi/src/commands/build.ts @@ -38,7 +38,7 @@ export default defineCommand({ const cwd = resolve(ctx.args.cwd || ctx.args.rootDir) - await showVersions(cwd) + showVersions(cwd) const kit = await loadKit(cwd) diff --git a/packages/nuxi/src/commands/dev.ts b/packages/nuxi/src/commands/dev.ts index 648cdd88..91437b0c 100644 --- a/packages/nuxi/src/commands/dev.ts +++ b/packages/nuxi/src/commands/dev.ts @@ -92,7 +92,7 @@ const command = defineCommand({ // Prepare overrideEnv('development') const cwd = resolve(ctx.args.cwd || ctx.args.rootDir) - await showVersions(cwd) + showVersions(cwd) // Load Nuxt Config const { loadNuxtConfig } = await loadKit(cwd)