diff --git a/packages/nuxi/src/commands/generate.ts b/packages/nuxi/src/commands/generate.ts new file mode 100644 index 0000000000..62b37fc94a --- /dev/null +++ b/packages/nuxi/src/commands/generate.ts @@ -0,0 +1,26 @@ +import { resolve } from 'pathe' +import { isNuxt3 } from '@nuxt/kit' +import { importModule } from '../utils/cjs' + +import { defineNuxtCommand } from './index' + +export default defineNuxtCommand({ + meta: { + name: 'generate', + usage: 'npx nuxi generate [rootDir]', + description: '' + }, + async invoke (args) { + process.env.NODE_ENV = process.env.NODE_ENV || 'production' + const rootDir = resolve(args._[0] || '.') + + const { loadNuxt } = await importModule('@nuxt/kit', rootDir) as typeof import('@nuxt/kit') + const nuxt = await loadNuxt({ rootDir }) + + if (isNuxt3(nuxt)) { + throw new Error('`nuxt generate` is not supported in Nuxt 3. Please follow this RFC: https://git.io/JKfvx') + } else { + throw new Error('Please use `nuxt generate` for Nuxt 2 instead of `nuxi generate`') + } + } +}) diff --git a/packages/nuxi/src/commands/index.ts b/packages/nuxi/src/commands/index.ts index f2c4e95396..90c58785fc 100644 --- a/packages/nuxi/src/commands/index.ts +++ b/packages/nuxi/src/commands/index.ts @@ -5,6 +5,7 @@ const _rDefault = r => r.default || r export const commands = { dev: () => import('./dev').then(_rDefault), build: () => import('./build').then(_rDefault), + generate: () => import('./generate').then(_rDefault), prepare: () => import('./prepare').then(_rDefault), usage: () => import('./usage').then(_rDefault), info: () => import('./info').then(_rDefault),