[{"data":1,"prerenderedAt":292},["ShallowReactive",2],{"page:\u002Fdocs\u002F5.x\u002Fintegrations\u002Foverview":3},{"id":4,"title":5,"body":6,"description":273,"extension":274,"frontmatter":275,"heading":5,"meta":282,"navigation":284,"order":278,"path":285,"seo":286,"sitemap":287,"source":288,"stem":289,"__hash__":290,"hasPopups":291},"docs\u002Fdocs\u002F5.x\u002Fintegrations\u002Foverview.md","Integrate Kubb with Studio, CI, and build tools",{"type":7,"value":8,"toc":261},"minimark",[9,18,23,33,37,57,61,85,160,167,181,186,201,236,249,253],[10,11,12,13,17],"p",{},"Run Kubb from Studio, from CI, or during your build. Each integration uses your shared ",[14,15,16],"code",{},"kubb.config.ts",".",[19,20,22],"h2",{"id":21},"studio","Studio",[24,25,26],"card-group",{},[27,28,32],"card",{"title":29,"icon":30,"to":31},"Kubb Studio","i-iconoir-cube","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fstudio","Connect a local project to Studio and review generated files in the browser.",[19,34,36],{"id":35},"ci","CI",[24,38,39,45,51],{},[27,40,44],{"title":41,"icon":42,"to":43},"CI snapshots","i-iconoir-git-merge","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fci","Publish installable Studio snapshots from any CI provider.",[27,46,50],{"title":47,"icon":48,"to":49},"GitHub Actions","i-simple-icons-githubactions","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fgithub-actions","Publish snapshots from GitHub Actions and review generated-file changes.",[27,52,56],{"title":53,"icon":54,"to":55},"GitLab CI","i-simple-icons-gitlab","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fgitlab","Publish snapshots from GitLab CI and review generated-file changes.",[19,58,60],{"id":59},"build-tools","Build tools",[10,62,63,64,67,68,71,72,74,75,78,79,81,82,84],{},"Kubb runs generation during your build through ",[14,65,66],{},"unplugin-kubb",", included with ",[14,69,70],{},"kubb",". Each integration takes your ",[14,73,16],{}," as a single ",[14,76,77],{},"config"," object and generates when the tool builds. Without ",[14,80,77],{},", it loads ",[14,83,16],{}," like the CLI does.",[24,86,87,96,104,112,120,128,136,144,152],{},[27,88,92,93,17],{"title":89,"icon":90,"to":91},"Vite","i-simple-icons-vite","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fvite","Import from ",[14,94,95],{},"kubb\u002Fvite",[27,97,92,101,17],{"title":98,"icon":99,"to":100},"webpack","i-simple-icons-webpack","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fwebpack",[14,102,103],{},"kubb\u002Fwebpack",[27,105,92,109,17],{"title":106,"icon":107,"to":108},"Rollup","i-simple-icons-rollupdotjs","\u002Fdocs\u002F5.x\u002Fintegrations\u002Frollup",[14,110,111],{},"kubb\u002Frollup",[27,113,92,117,17],{"title":114,"icon":115,"to":116},"Rolldown","i-simple-icons-rolldown","\u002Fdocs\u002F5.x\u002Fintegrations\u002Frolldown",[14,118,119],{},"kubb\u002Frolldown",[27,121,92,125,17],{"title":122,"icon":123,"to":124},"Rspack","i-iconoir-journal","\u002Fdocs\u002F5.x\u002Fintegrations\u002Frspack",[14,126,127],{},"kubb\u002Frspack",[27,129,92,133,17],{"title":130,"icon":131,"to":132},"esbuild","i-simple-icons-esbuild","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fesbuild",[14,134,135],{},"kubb\u002Fesbuild",[27,137,92,141,17],{"title":138,"icon":139,"to":140},"Farm","i-iconoir-light-bulb","\u002Fdocs\u002F5.x\u002Fintegrations\u002Ffarm",[14,142,143],{},"kubb\u002Ffarm",[27,145,92,149,17],{"title":146,"icon":147,"to":148},"Nuxt","i-simple-icons-nuxt","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fnuxt",[14,150,151],{},"kubb\u002Fnuxt",[27,153,92,157,17],{"title":154,"icon":155,"to":156},"Astro","i-simple-icons-astro","\u002Fdocs\u002F5.x\u002Fintegrations\u002Fastro",[14,158,159],{},"kubb\u002Fastro",[10,161,162,163,166],{},"Vite, Nuxt, and Astro generate during builds only. Run ",[14,164,165],{},"kubb generate"," before starting their development servers.",[168,169,171,172,175,176,17],"blockquote",{"as":170},"note","Bundler integrations apply fewer defaults than the CLI: no Markdown parser, no reporters, and no ",[14,173,174],{},"output.postGenerate"," commands. See ",[177,178,180],"a",{"href":179},"\u002Fdocs\u002F5.x\u002Freference\u002Fconfiguration#defaults","Defaults",[182,183,185],"h3",{"id":184},"import-a-spec","Import a spec",[10,187,188,189,192,193,196,197,200],{},"Import a ",[14,190,191],{},"*.openapi.yaml"," or ",[14,194,195],{},"*.openapi.yml"," file to get the output of every plugin in your config as one module, without generated files. A config without ",[14,198,199],{},"input"," only serves these imports.",[202,203,207],"pre",{"language":204,"code":205,"class":206},"ts","import { type Pet, petStatusEnum } from '.\u002FpetStore.openapi.yaml'","shiki shiki-themes github-light github-dark dark:github-dark",[14,208,210],{"class":209},"language-ts",[211,212,215,219,223,226,229,232],"span",{"class":213,"style":214},"line","display: inline",[211,216,218],{"style":217},"color:#D73A49;--shiki-dark:#F97583","import",[211,220,222],{"style":221},"color:#24292E;--shiki-dark:#E1E4E8"," { ",[211,224,225],{"style":217},"type",[211,227,228],{"style":221}," Pet, petStatusEnum } ",[211,230,231],{"style":217},"from",[211,233,235],{"style":234},"color:#032F62;--shiki-dark:#9ECBFF"," '.\u002FpetStore.openapi.yaml'",[10,237,238,239,242,243,17],{},"Code a plugin writes to a separate file, such as a bundled client runtime, is not included. For types in ",[14,240,241],{},"tsc"," and your editor, add ",[177,244,246],{"href":245},"\u002Fdocs\u002F5.x\u002Fintegrations\u002Fopenapi-import",[14,247,248],{},"openapi-import",[19,250,252],{"id":251},"typescript","TypeScript",[24,254,255],{},[27,256,188,258,260],{"title":248,"icon":257,"to":245},"i-simple-icons-typescript",[14,259,191],{}," spec in TypeScript and type-check the output of your plugins.",{"title":262,"searchDepth":263,"depth":263,"links":264},"",5,[265,267,268,272],{"id":21,"depth":266,"text":22},2,{"id":35,"depth":266,"text":36},{"id":59,"depth":266,"text":60,"children":269},[270],{"id":184,"depth":271,"text":185},3,{"id":251,"depth":266,"text":252},"Connect Kubb to Studio, publish snapshots from CI, or run generation during a Vite, webpack, Rollup, Rolldown, Rspack, esbuild, Farm, Nuxt, or Astro build.","md",{"layout":276,"title":5,"description":273,"outline":277,"order":278,"navigation":279},"doc",[266,271],0,{"title":280,"icon":281},"Overview","i-iconoir-view-grid",{"layout":276,"outline":283},[266,271],{"title":280,"icon":281},"\u002Fdocs\u002F5.x\u002Fintegrations\u002Foverview",{"title":5,"description":273},{"loc":285},"kubb-labs\u002Fkubb\u002Fdocs\u002F5.x\u002Fintegrations\u002Foverview.md","docs\u002F5.x\u002Fintegrations\u002Foverview","p3vEu4UxmraDUG72flQ6QWtu2UQkjlOyWzXUPorGo8A",false,1792782246081]