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 unplugin-kubb @kubb/core
shell
pnpm add unplugin-kubb @kubb/core
shell
npm install unplugin-kubb @kubb/core
shell
yarn add unplugin-kubb @kubb/core
Options ​
config ​
Define the options for Kubb.
TYPE
typescript
import type { UserConfig } from "@kubb/core"
type Options = {
config: UserConfig
}
INFO
Type: Options
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 { pluginTanstackQuery } from '@kubb/swagger-tanstack-query'
import { pluginTs } from '@kubb/swagger-ts'
export const config: UserConfig = {
root: '.',
input: {
path: './petStore.yaml',
},
output: {
path: './src/gen',
clean: true,
},
plugins: [
pluginOas({ output: false }),
pluginTs({
output: {
path: 'models',
},
}),
],
}
// https://vitejs.dev/config/
export default defineViteConfig({
plugins: [
kubb({
config,
}),
],
})
Examples ​
Vite ​
ts
// vite.config.ts
import kubb from 'unplugin-kubb/vite'
export default defineConfig({
plugins: [
kubb({/* options */}),
],
})
Rollup ​
ts
// rollup.config.js
import kubb from 'unplugin-kubb/rollup'
export default {
plugins: [
kubb({/* options */}),
],
}
webpack ​
ts
// webpack.config.js
module.exports = {
/* ... */
plugins: [
require('unplugin-kubb/webpack')({/* options */}),
],
}
Nuxt ​
ts
// nuxt.config.js
export default defineNuxtConfig({
modules: [
['unplugin-kubb/nuxt', {/* options */}],
],
})
This module works for both Nuxt 2 and Nuxt Vite
Vue CLI ​
ts
// vue.config.js
module.exports = {
configureWebpack: {
plugins: [
require('unplugin-kubb/webpack')({/* options */}),
],
},
}
esbuild ​
ts
// esbuild.config.js
import { build } from 'esbuild'
import kubb from 'unplugin-kubb/esbuild'
build({
plugins: [kubb()],
})