unplugin-kubb
Kubb plugin for Vite, webpack, esbuild, Rollup, Nuxt, Astro and Rspack.
TIP
The hook option will not work with Unplugin. If you need to run Prettier or ESLint after the generation, use Kubb CLI instead.
Installation
shell
bun add -d unplugin-kubb @kubb/coreshell
pnpm add -D unplugin-kubb @kubb/coreshell
npm install --save-dev unplugin-kubb @kubb/coreshell
yarn add -D unplugin-kubb @kubb/coreOptions
config
Define the options for Kubb.
typescript
import type { UserConfig } from "@kubb/core"
type Options = {
config: UserConfig
}typescript
import kubb from 'unplugin-kubb/vite'
import { defineConfig as defineViteConfig } from 'vite'
import { defineConfig, UserConfig } from '@kubb/core'
import { pluginOas } from '@kubb/plugin-oas'
import { pluginTs } from '@kubb/plugin-ts'
export const config = {
root: '.',
input: {
path: './petStore.yaml',
},
output: {
path: './src/gen',
clean: true,
},
plugins: [
pluginOas(),
pluginTs({
output: {
path: 'models',
},
}),
],
}
// https://vitejs.dev/config/
export default defineViteConfig({
plugins: [
kubb({
config,
}),
],
})Examples
ts
// vite.config.ts
import kubb from 'unplugin-kubb/vite'
export default defineConfig({
plugins: [
kubb({/* options */}),
],
})typescript
// rollup.config.js
import kubb from 'unplugin-kubb/rollup'
export default {
plugins: [
kubb({/* options */}),
],
}typescript
// webpack.config.js
module.exports = {
/* ... */
plugins: [
require('unplugin-kubb/webpack')({/* options */}),
],
}typescript
// rspack.config.js
module.exports = {
/* ... */
plugins: [
require('unplugin-kubb/rspack')({ /* options */ })
]
}typescript
// esbuild.config.js
import { build } from 'esbuild'
import kubb from 'unplugin-kubb/esbuild'
build({
plugins: [
kubb({/* options */}),
],
})typescript
// vue.config.js
module.exports = {
configureWebpack: {
plugins: [
require('unplugin-kubb/webpack')({/* options */}),
],
},
}typescript
// nuxt.config.js
export default defineNuxtConfig({
modules: [
['unplugin-kubb/nuxt', {/* options */}],
],
})typescript
// astro.config.mjs
import { defineConfig } from 'astro/config'
import Kubb from 'unplugin-kubb/astro'
// https://astro.build/config
export default defineConfig({
integrations: [
Kubb({/* options */})
]
})