prepare
Initialization steps at build time – like Nuxt 2 server init
nuxt-prepare
Nuxt 3 module to run initialization steps at build time.
Features
- 🦦 Zero-Config
- 🦎 Run sync or async operations when Nuxt builds your app
- ✂️ Conditionally overwrite runtime config or app config variables
- 🦾 Better DX with
defineNuxtPrepareHandler
Setup
# pnpmpnpm add -D nuxt-prepare# npmnpm i -D nuxt-prepare
Basic Usage
Add the nuxt-prepare
module to your nuxt.config.ts
:
// `nuxt.config.ts`export default defineNuxtConfig({ modules: ['nuxt-prepare']})
By default, nuxt-prepare
will look for a server.prepare.ts
file in your project root. To run synchronous or asynchronous code when Nuxt builds your app, define a handler in your project root and export a default function:
// `server.prepare.ts`import { defineNuxtPrepareHandler } from 'nuxt-prepare/config'export default defineNuxtPrepareHandler(async () => { // Do some async magic here, e.g. fetch data from an API return { // Overwrite the runtime config variable `foo` runtimeConfig: { public: { foo: 'overwritten by prepare script' } }, // Pass custom state to Nuxt and import it // anywhere from `#nuxt-prepare` state: { foo: 'bar', }, }})
ℹ️ You can run as many prepare scripts as you want – add them to the
prepareKit.scripts
module configuration.
💻 Development
- Clone this repository
- Enable Corepack using
corepack enable
- Install dependencies using
pnpm install
- Run
pnpm run dev:prepare
- Start development server using
pnpm run dev
Credits
- Maronbeere for his Chameleon pixel art.
- McPizza0 for his inspirational
nuxt-server-init
module.
License
MIT License © 2023-PRESENT Johann Schopplich