mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-12 09:03:53 +00:00
fc10da37fb
Co-authored-by: Damian Głowala <48835293+DamianGlowala@users.noreply.github.com>
4.2 KiB
4.2 KiB
title | description |
---|---|
Kit Utilities | Nuxt Kit provides composable utilities to help interacting with Nuxt Hooks and Nuxt Builder. |
Kit Utilities
::ReadMore{link="/docs/guide/going-further/kit"} ::
Utilities
Modules
installModule(module, inlineOptions)
Programmatic Usage
loadNuxt(loadOptions)
buildNuxt(nuxt)
loadNuxtConfig(loadOptions)
Compatibility
checkNuxtCompatibility(constraints)
assertNuxtCompatibility(constraints)
hasNuxtCompatibility(constraints)
isNuxt2()
isNuxt3()
getNuxtVersion()
Auto-imports
addImports(imports)
addImportsDir(importDirs, { prepend? })
addImportsSources(importSources)
Components
addComponentsDir(dir)
addComponent(componentObject)
Context
useNuxt()
Pages
extendPages (callback: pages => void)
extendRouteRules (route: string, rule: NitroRouteConfig, options: ExtendRouteRulesOptions)
addRouteMiddleware (input: NuxtMiddleware | NuxtMiddleware[], options: AddRouteMiddlewareOptions)
Plugins
addPlugin(pluginOptions, { append? })
addPluginTemplate(pluginOptions, { append? })
Templates
addTemplate(templateOptions)
addTypeTemplate(templateOptions)
updateTemplates({ filter?: ResolvedNuxtTemplate => boolean })
Nitro
addServerHandler (handler)
addDevServerHandler (handler)
useNitro()
(only usable afterready
hook)addServerPlugin
addPrerenderRoutes
Resolving
resolvePath (path, resolveOptions?)
resolveAlias (path, aliases?)
findPath (paths, resolveOptions?)
createResolver (base)
Logging
useLogger(scope?)
Builder
extendWebpackConfig(callback, options?)
extendViteConfig(callback, options?)
addWebpackPlugin(webpackPlugin, options?)
addVitePlugin(vitePlugin, options?)
Examples
Accessing Nuxt Vite Config
If you are building an integration that needs access to the runtime Vite or webpack config that Nuxt uses, it is possible to extract this using Kit utilities.
Some examples of projects doing this already:
Here is a brief example of how you might access the Vite config from a project; you could implement a similar approach to get the webpack configuration.
import { loadNuxt, buildNuxt } from '@nuxt/kit'
// https://github.com/nuxt/nuxt/issues/14534
async function getViteConfig() {
const nuxt = await loadNuxt({ cwd: process.cwd(), dev: false, overrides: { ssr: false } })
return new Promise((resolve, reject) => {
nuxt.hook('vite:extendConfig', (config, { isClient }) => {
if (isClient) {
resolve(config)
throw new Error('_stop_')
}
})
buildNuxt(nuxt).catch((err) => {
if (!err.toString().includes('_stop_')) {
reject(err)
}
})
}).finally(() => nuxt.close())
}
const viteConfig = await getViteConfig()
console.log(viteConfig)