nuxt logo

Traducción de Documentación (No Oficial)

Constructor

Nuxt Kit proporciona un conjunto de utilidades para ayudarte a trabajar con el constructor. Estas funciones te permiten extender las configuraciones de Vite y webpack.

Nuxt tiene constructores basados en Vite y webpack. Puedes extender la configuración pasada a cada uno usando las funciones extendViteConfig y extendWebpackConfig. También puedes agregar plugins adicionales a través de addVitePlugin, addWebpackPlugin y addBuildPlugin.

extendViteConfig

Extiende la configuración de Vite. La función de callback puede ser llamada múltiples veces, al aplicarse tanto a las construcciones del cliente como del servidor.

Uso

import { defineNuxtModule, extendViteConfig } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    extendViteConfig((config) => {
      config.optimizeDeps ||= {}
      config.optimizeDeps.include ||= []
      config.optimizeDeps.include.push('cross-fetch')
    })
  },
})

Tipo

// @errors: 2391
import type { UserConfig as ViteConfig } from 'vite'
import type { ExtendViteConfigOptions } from '@nuxt/kit'
// ---cut---
function extendViteConfig (callback: ((config: ViteConfig) => void), options?: ExtendViteConfigOptions): void
Ver también vite.dev > config

Parámetros

callback: Una función de callback que será llamada con el objeto de configuración de Vite.

options: Opciones para pasar a la función de callback. Este objeto puede tener las siguientes propiedades:

PropiedadTipoRequeridoDescripción
devbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de desarrollo.
buildbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de producción.
serverbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del servidor.
clientbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del cliente.
prependbooleanfalseSi se establece en true, la función de callback se añadirá al principio del array con unshift() en lugar de push().

extendWebpackConfig

Extiende la configuración de webpack. La función de callback puede ser llamada múltiples veces, al aplicarse tanto a las construcciones del cliente como del servidor.

Uso

import { defineNuxtModule, extendWebpackConfig } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    extendWebpackConfig((config) => {
      config.module!.rules!.push({
        test: /\.txt$/,
        use: 'raw-loader',
      })
    })
  },
})

Tipo

// @errors: 2391
import type { Configuration as WebpackConfig } from 'webpack'
import type { ExtendWebpackConfigOptions } from '@nuxt/kit'
// ---cut---
function extendWebpackConfig (callback: ((config: WebpackConfig) => void), options?: ExtendWebpackConfigOptions): void
Ver también webpack.js.org > configuration

Parámetros

callback: Una función de callback que será llamada con el objeto de configuración de webpack.

options: Opciones para pasar a la función de callback. Este objeto puede tener las siguientes propiedades:

PropiedadTipoRequeridoDescripción
devbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de desarrollo.
buildbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de producción.
serverbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del servidor.
clientbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del cliente.
prependbooleanfalseSi se establece en true, la función de callback se añadirá al principio del array con unshift() en lugar de push().

addVitePlugin

Añade un plugin de Vite a la configuración.

Uso

// @errors: 2307
// ---cut---
import { addVitePlugin, defineNuxtModule } from '@nuxt/kit'
import { svg4VuePlugin } from 'vite-plugin-svg4vue'

export default defineNuxtModule({
  meta: {
    name: 'nuxt-svg-icons',
    configKey: 'nuxtSvgIcons',
  },
  defaults: {
    svg4vue: {
      assetsDirName: 'assets/icons',
    },
  },
  setup (options) {
    addVitePlugin(svg4VuePlugin(options.svg4vue))
  },
})

Tipo

// @errors: 2391
import type { Plugin as VitePlugin } from 'vite'
import type { ExtendViteConfigOptions } from '@nuxt/kit'
// ---cut---
function addVitePlugin (pluginOrGetter: VitePlugin | VitePlugin[] | (() => VitePlugin | VitePlugin[]), options?: ExtendViteConfigOptions): void

Consulta el sitio web de Vite para más información sobre los plugins de Vite. También puedes usar este repositorio para encontrar un plugin que se adapte a tus necesidades.

Parámetros

pluginOrGetter: Una instancia de plugin de Vite o un array de instancias de plugin de Vite. Si se proporciona una función, debe devolver una instancia de plugin de Vite o un array de instancias de plugin de Vite.

options: Opciones para pasar a la función de callback. Este objeto puede tener las siguientes propiedades:

PropiedadTipoRequeridoDescripción
devbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de desarrollo.
buildbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de producción.
serverbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del servidor.
clientbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del cliente.
prependbooleanfalseSi se establece en true, la función de callback se añadirá al principio del array con unshift() en lugar de push().

addWebpackPlugin

Añade un plugin de webpack a la configuración.

Uso

import EslintWebpackPlugin from 'eslint-webpack-plugin'
import { addWebpackPlugin, defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  meta: {
    name: 'nuxt-eslint',
    configKey: 'eslint',
  },
  defaults: nuxt => ({
    include: [`${nuxt.options.srcDir}/**/*.{js,jsx,ts,tsx,vue}`],
    lintOnStart: true,
  }),
  setup (options, nuxt) {
    const webpackOptions = {
      ...options,
      context: nuxt.options.srcDir,
      files: options.include,
      lintDirtyModulesOnly: !options.lintOnStart,
    }
    addWebpackPlugin(new EslintWebpackPlugin(webpackOptions), { server: false })
  },
})

Tipo

// @errors: 2391
import type { WebpackPluginInstance } from 'webpack'
import type { ExtendWebpackConfigOptions } from '@nuxt/kit'
// ---cut---
function addWebpackPlugin (pluginOrGetter: WebpackPluginInstance | WebpackPluginInstance[] | (() => WebpackPluginInstance | WebpackPluginInstance[]), options?: ExtendWebpackConfigOptions): void

Consulta el sitio web de webpack para más información sobre los plugins de webpack. También puedes usar esta colección para encontrar un plugin que se adapte a tus necesidades.

Parámetros

pluginOrGetter: Una instancia de plugin de webpack o un array de instancias de plugin de webpack. Si se proporciona una función, debe devolver una instancia de plugin de webpack o un array de instancias de plugin de webpack.

options: Opciones para pasar a la función de callback. Este objeto puede tener las siguientes propiedades:

PropiedadTipoRequeridoDescripción
devbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de desarrollo.
buildbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de producción.
serverbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del servidor.
clientbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del cliente.
prependbooleanfalseSi se establece en true, la función de callback se añadirá al principio del array con unshift() en lugar de push().

addBuildPlugin

Versión agnóstica del constructor de addVitePlugin y addWebpackPlugin. Añadirá el plugin a ambas configuraciones de Vite y webpack si están presentes.

Tipo

// @errors: 2391
import type { ExtendConfigOptions } from '@nuxt/kit'
import type { Plugin as VitePlugin } from 'vite'
import type { WebpackPluginInstance } from 'webpack'
import type { RspackPluginInstance } from '@rspack/core'
interface AddBuildPluginFactory {
  vite?: () => VitePlugin | VitePlugin[]
  webpack?: () => WebpackPluginInstance | WebpackPluginInstance[]
  rspack?: () => RspackPluginInstance | RspackPluginInstance[]
}
// ---cut---
function addBuildPlugin (pluginFactory: AddBuildPluginFactory, options?: ExtendConfigOptions): void

Parámetros

pluginFactory: Una función de fábrica que devuelve un objeto con propiedades vite y/o webpack. Estas propiedades deben ser funciones que devuelvan una instancia de plugin de Vite o un array de instancias de plugin de Vite y/o una instancia de plugin de webpack o un array de instancias de plugin de webpack.

options: Opciones para pasar a la función de callback. Este objeto puede tener las siguientes propiedades:

PropiedadTipoRequeridoDescripción
devbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de desarrollo.
buildbooleanfalseSi se establece en true, la función de callback se llamará al construir en modo de producción.
serverbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del servidor.
clientbooleanfalseSi se establece en true, la función de callback se llamará al construir el paquete del cliente.
prependbooleanfalseSi se establece en true, la función de callback se añadirá al principio del array con unshift() en lugar de push().