Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,9 @@ export default createConfigForNuxt({
// TODO: remove usage of `any` throughout codebase
'@typescript-eslint/no-explicit-any': 'off',
},
}, {
files: ['src/**'],
rules: {
'no-console': 'error',
},
})
15 changes: 8 additions & 7 deletions src/commands/add.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { existsSync, promises as fsp } from 'node:fs'
import { dirname, resolve, extname } from 'pathe'
import { consola } from 'consola'
import { defineCommand } from 'citty'

import { logger } from '../utils/logger'
import { loadKit } from '../utils/kit'
import { templates } from '../utils/templates'
import { cwdArgs, logLevelArgs } from './_shared'
Expand Down Expand Up @@ -43,7 +44,7 @@ export default defineCommand({

// Validate template name
if (!template) {
consola.error(
logger.error(
`Template ${templateName} is not supported. Possible values: ${Object.keys(
templates,
).join(', ')}`,
Expand All @@ -53,7 +54,7 @@ export default defineCommand({

// Validate options
if (!name) {
consola.error('name argument is missing!')
logger.error('name argument is missing!')
process.exit(1)
}

Expand All @@ -66,7 +67,7 @@ export default defineCommand({

// Ensure not overriding user code
if (!ctx.args.force && existsSync(res.path)) {
consola.error(
logger.error(
`File exists: ${res.path} . Use --force to override or use a different name.`,
)
process.exit(1)
Expand All @@ -75,15 +76,15 @@ export default defineCommand({
// Ensure parent directory exists
const parentDir = dirname(res.path)
if (!existsSync(parentDir)) {
consola.info('Creating directory', parentDir)
logger.info('Creating directory', parentDir)
if (templateName === 'page') {
consola.info('This enables vue-router functionality!')
logger.info('This enables vue-router functionality!')
}
await fsp.mkdir(parentDir, { recursive: true })
}

// Write file
await fsp.writeFile(res.path, res.contents.trim() + '\n')
consola.info(`πŸͺ„ Generated a new ${templateName} in ${res.path}`)
logger.info(`πŸͺ„ Generated a new ${templateName} in ${res.path}`)
},
})
9 changes: 4 additions & 5 deletions src/commands/analyze.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { defineCommand } from 'citty'
import { loadKit } from '../utils/kit'
import { clearDir } from '../utils/fs'
import { overrideEnv } from '../utils/env'
import { logger } from '../utils/logger'
import { legacyRootDirArgs, dotEnvArgs, cwdArgs, logLevelArgs } from './_shared'

export default defineCommand({
Expand Down Expand Up @@ -99,10 +100,8 @@ export default defineCommand({
'utf-8',
)

console.info('Analyze results are available at: `' + analyzeDir + '`')
console.warn(
'Do not deploy analyze results! Use `nuxi build` before deploying.',
)
logger.info('Analyze results are available at: `' + analyzeDir + '`')
logger.warn('Do not deploy analyze results! Use `nuxi build` before deploying.')

if (ctx.args.serve !== false && !process.env.CI) {
const app = createApp()
Expand All @@ -115,7 +114,7 @@ export default defineCommand({
})
})

console.info('Starting stats server...')
logger.info('Starting stats server...')

app.use('/client', serveFile(join(analyzeDir, 'client.html')))
app.use('/nitro', serveFile(join(analyzeDir, 'nitro.html')))
Expand Down
5 changes: 3 additions & 2 deletions src/commands/build-module.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { x } from 'tinyexec'
import { consola } from 'consola'
import { resolve } from 'pathe'
import { defineCommand } from 'citty'
import { readPackageJSON } from 'pkg-types'

import { logger } from '../utils/logger'
import { cwdArgs, legacyRootDirArgs, logLevelArgs } from './_shared'

const MODULE_BUILDER_PKG = '@nuxt/module-builder'
Expand Down Expand Up @@ -45,7 +46,7 @@ export default defineCommand({

let cmd = 'nuxt-module-build'
if (!hasLocal) {
consola.warn(
logger.warn(
`Cannot find locally installed version of \`${MODULE_BUILDER_PKG}\` (>=0.2.0). Falling back to \`npx ${MODULE_BUILDER_PKG}\``,
)
cmd = 'npx'
Expand Down
11 changes: 6 additions & 5 deletions src/commands/build.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { relative, resolve } from 'pathe'
import { consola } from 'consola'
import type { Nitro } from 'nitropack'
import { defineCommand } from 'citty'

import { logger } from '../utils/logger'
import { loadKit } from '../utils/kit'
import { clearBuildDir } from '../utils/fs'
import { overrideEnv } from '../utils/env'
Expand Down Expand Up @@ -61,7 +62,7 @@ export default defineCommand({
try {
// Use ? for backward compatibility for Nuxt <= RC.10
nitro = kit.useNitro?.()
consola.info(`Building for Nitro preset: \`${nitro.options.preset}\``)
logger.info(`Building for Nitro preset: \`${nitro.options.preset}\``)
}
catch {
//
Expand All @@ -72,22 +73,22 @@ export default defineCommand({
await kit.writeTypes(nuxt)

nuxt.hook('build:error', (err) => {
consola.error('Nuxt Build Error:', err)
logger.error('Nuxt Build Error:', err)
process.exit(1)
})

await kit.buildNuxt(nuxt)

if (ctx.args.prerender) {
if (!nuxt.options.ssr) {
consola.warn(
logger.warn(
'HTML content not prerendered because `ssr: false` was set. You can read more in `https://nuxt.com/docs/getting-started/deployment#static-hosting`.',
)
}
// TODO: revisit later if/when nuxt build --prerender will output hybrid
const dir = nitro?.options.output.publicDir
const publicDir = dir ? relative(process.cwd(), dir) : '.output/public'
consola.success(
logger.success(
`You can now deploy \`${publicDir}\` to any static hosting!`,
)
}
Expand Down
5 changes: 2 additions & 3 deletions src/commands/dev-child.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { resolve } from 'pathe'
import { consola } from 'consola'
import { defineCommand } from 'citty'
import { isTest } from 'std-env'

import { logger } from '../utils/logger'
import { overrideEnv } from '../utils/env'
import type { NuxtDevContext, NuxtDevIPCMessage } from '../utils/dev'
import { createNuxtDevServer } from '../utils/dev'
Expand All @@ -20,8 +21,6 @@ export default defineCommand({
...legacyRootDirArgs,
},
async run(ctx) {
const logger = consola.withTag('nuxi')

if (!process.send && !isTest) {
logger.warn(
'`nuxi _dev` is an internal command and should not be used directly. Please use `nuxi dev` instead.',
Expand Down
10 changes: 4 additions & 6 deletions src/commands/dev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,12 @@ import { setupDotenv } from 'c12'
import type { ParsedArgs } from 'citty'
import { defineCommand } from 'citty'
import { isBun, isTest } from 'std-env'
import {
getArgs as getListhenArgs,
parseArgs as parseListhenArgs,
} from 'listhen/cli'
import { getArgs as getListhenArgs, parseArgs as parseListhenArgs } from 'listhen/cli'
import type { HTTPSOptions, ListenOptions } from 'listhen'
import type { NuxtOptions } from '@nuxt/schema'
import { consola } from 'consola'
import { createJiti } from 'jiti'

import { logger } from '../utils/logger'
import { showVersions } from '../utils/banner'
import { loadKit } from '../utils/kit'
import { overrideEnv } from '../utils/env'
Expand Down Expand Up @@ -213,7 +211,7 @@ async function _startSubprocess(devProxy: DevProxy, rawArgs: string[]) {
restart()
}
else if (message.type === 'nuxt:internal:dev:rejection') {
consola.withTag('nuxi').info(`Restarting Nuxt due to error: \`${message.message}\``)
logger.withTag('nuxi').info(`Restarting Nuxt due to error: \`${message.message}\``)
restart()
}
})
Expand Down
3 changes: 2 additions & 1 deletion src/commands/devtools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { resolve } from 'pathe'
import { x } from 'tinyexec'
import { defineCommand } from 'citty'

import { logger } from '../utils/logger'
import { cwdArgs, legacyRootDirArgs } from './_shared'

export default defineCommand({
Expand All @@ -22,7 +23,7 @@ export default defineCommand({
const cwd = resolve(ctx.args.cwd || ctx.args.rootDir)

if (!['enable', 'disable'].includes(ctx.args.command)) {
console.error(`Unknown command \`${ctx.args.command}\`.`)
logger.error(`Unknown command \`${ctx.args.command}\`.`)
process.exit(1)
}

Expand Down
12 changes: 4 additions & 8 deletions src/commands/info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import nuxiPkg from '../../package.json' assert { type: 'json' }
import { tryResolveNuxt } from '../utils/kit'
import { getPackageManagerVersion } from '../utils/packageManagers'

import { logger } from '../utils/logger'
import { cwdArgs, legacyRootDirArgs } from './_shared'

export default defineCommand({
Expand Down Expand Up @@ -97,7 +98,7 @@ export default defineCommand({
BuildModules: await listModules((nuxtConfig as any /* nuxt v2 */).buildModules || []),
}

console.log('Working directory:', cwd)
logger.log('Working directory:', cwd)

let maxLength = 0
const entries = Object.entries(infoObj).map(([key, val]) => {
Expand All @@ -120,12 +121,6 @@ export default defineCommand({
.write(infoStr)
.then(() => true)
.catch(() => false)
const splitter = '------------------------------'
console.log(
`Nuxt project info: ${
copied ? '(copied to clipboard)' : ''
}\n\n${splitter}\n${infoStr}${splitter}\n`,
)

const isNuxt3 = !isLegacy
const isBridge = !isNuxt3 && infoObj.BuildModules.includes('bridge')
Expand All @@ -138,7 +133,8 @@ export default defineCommand({
`πŸ‘‰ Read documentation: ${(isNuxt3 || isBridge) ? 'https://nuxt.com' : 'https://v2.nuxt.com'}`,
].filter(Boolean).join('\n')

console.log('\n' + log + '\n')
const splitter = '------------------------------'
logger.log(`Nuxt project info: ${copied ? '(copied to clipboard)' : ''}\n\n${splitter}\n${infoStr}${splitter}\n\n${log}\n`)
},
})

Expand Down
26 changes: 13 additions & 13 deletions src/commands/init.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { downloadTemplate, startShell } from 'giget'
import type { DownloadTemplateResult } from 'giget'
import { relative, resolve } from 'pathe'
import { consola } from 'consola'
import { installDependencies } from 'nypm'
import { x } from 'tinyexec'
import type { PackageManagerName } from 'nypm'
import { defineCommand } from 'citty'

import { logger } from '../utils/logger'
import { cwdArgs } from './_shared'

const DEFAULT_REGISTRY
Expand Down Expand Up @@ -68,7 +68,7 @@ export default defineCommand({
const templateName = ctx.args.template || DEFAULT_TEMPLATE_NAME

if (typeof templateName !== 'string') {
consola.error('Please specify a template!')
logger.error('Please specify a template!')
process.exit(1)
}

Expand All @@ -89,7 +89,7 @@ export default defineCommand({
if (process.env.DEBUG) {
throw err
}
consola.error((err as Error).toString())
logger.error((err as Error).toString())
process.exit(1)
}

Expand All @@ -106,18 +106,18 @@ export default defineCommand({
packageManagerArg,
)
? packageManagerArg
: await consola.prompt('Which package manager would you like to use?', {
: await logger.prompt('Which package manager would you like to use?', {
type: 'select',
options: packageManagerOptions,
})

// Install project dependencies
// or skip installation based on the '--no-install' flag
if (ctx.args.install === false) {
consola.info('Skipping install dependencies step.')
logger.info('Skipping install dependencies step.')
}
else {
consola.start('Installing dependencies...')
logger.start('Installing dependencies...')

try {
await installDependencies({
Expand All @@ -132,20 +132,20 @@ export default defineCommand({
if (process.env.DEBUG) {
throw err
}
consola.error((err as Error).toString())
logger.error((err as Error).toString())
process.exit(1)
}

consola.success('Installation completed.')
logger.success('Installation completed.')
}

if (ctx.args.gitInit === undefined) {
ctx.args.gitInit = await consola.prompt('Initialize git repository?', {
ctx.args.gitInit = await logger.prompt('Initialize git repository?', {
type: 'confirm',
})
}
if (ctx.args.gitInit) {
consola.info('Initializing git repository...\n')
logger.info('Initializing git repository...\n')
try {
await x('git', ['init', template.dir], {
throwOnError: true,
Expand All @@ -155,12 +155,12 @@ export default defineCommand({
})
}
catch (err) {
consola.warn(`Failed to initialize git repository: ${err}`)
logger.warn(`Failed to initialize git repository: ${err}`)
}
}

// Display next steps
consola.log(
logger.log(
`\n✨ Nuxt project has been created with the \`${template.name}\` template. Next steps:`,
)
const relativeTemplateDir = relative(process.cwd(), template.dir) || '.'
Expand All @@ -173,7 +173,7 @@ export default defineCommand({
].filter(Boolean)

for (const step of nextSteps) {
consola.log(` β€Ί ${step}`)
logger.log(` β€Ί ${step}`)
}

if (ctx.args.shell) {
Expand Down
Loading
Loading