Nuxt Config Schema
This is a proof of concept module for a feature in Nuxt 3 that automatically infers and generates schema based on user provided configuration from several sources using unjs/untyped and supports extending layers.
Schema can be defined in nuxt.schema.ts
or $schema
field in nuxt.config.ts
.
Usage
- Install
nuxt-config-schema
as dev dependency:
npm i -D nuxt-config-schema
pnpm add -D nuxt-config-schema
yarn add nuxt-config-schema
- Add module to
nuxt.config
:
export default defineNuxtConfig({
modules: [
'nuxt-config-schema'
]
})
- Create
nuxt.schema.ts
:
export default defineNuxtConfigSchema({
appConfig: {
test2: {
$default: 'from nuxt.schema'
}
},
anotherConfig: {
aTest: '123'
}
})
- Use
nuxi dev
or nuxi build
commands
You can access generated schema (json, markdown and types) from .nuxt/schema/
directory and also hooks below:
schema:resolved(schema)
: Extend resolved schema (first call after modules:done
hook)schema:beforeWrite(schema)
: Extend resolved schema just before writing to filesystem (called after build:done
hook)schema:written
: Hook will be called when schema has been written and updated to filesystem
Development
- Run
npm run dev:prepare
to generate type stubs. - Use
npm run dev
to start playground in development mode.