shared
Utiliza el directorio shared/ para compartir funcionalidad entre la aplicación Vue y el servidor Nitro.
El directorio shared/
te permite compartir código que puede ser utilizado tanto en la aplicación Vue como en el servidor Nitro.
El directorio shared/
está disponible en Nuxt v3.14+.
El código en el directorio shared/
no puede importar ningún código de Vue o Nitro.
Las auto-importaciones no están habilitadas por defecto en Nuxt v3 para evitar cambios disruptivos en proyectos existentes.
Para usar estas utilidades y tipos auto-importados, primero debes establecer future.compatibilityVersion: 4
en tu nuxt.config.ts
.
Uso
Método 1: Exportación nombrada
export const capitalize = (input: string) => {
return input[0] ? input[0].toUpperCase() + input.slice(1) : ''
}
Método 2: Exportación por defecto
export default function (input: string) {
return input[0] ? input[0].toUpperCase() + input.slice(1) : ''
}
Ahora puedes usar utilidades auto-importadas en tu aplicación Nuxt y en el directorio server/
.
<script setup lang="ts">
const hello = capitalize('hello')
</script>
<template>
<div>
{{ hello }}
</div>
</template>
export default defineEventHandler((event) => {
return {
hello: capitalize('hello')
}
})
Cómo se escanean los archivos
Solo los archivos en los directorios shared/utils/
y shared/types/
serán auto-importados. Los archivos anidados dentro de subdirectorios de estos directorios no serán auto-importados a menos que agregues estos directorios a imports.dirs
y nitro.imports.dirs
.
La forma en que funcionan y se escanean las auto-importaciones de shared/utils
y shared/types
es idéntica a los directorios composables/
y utils/
.
-| shared/
---| capitalize.ts # No auto-importado
---| formatters
-----| lower.ts # No auto-importado
---| utils/
-----| lower.ts # Auto-importado
-----| formatters
-------| upper.ts # No auto-importado
---| types/
-----| bar.d.ts # Auto-importado
Cualquier otro archivo que crees en la carpeta shared/
debe ser importado manualmente usando el alias #shared
(configurado automáticamente por Nuxt):
// Para archivos directamente en el directorio shared
import capitalize from '#shared/capitalize'
// Para archivos en directorios anidados
import lower from '#shared/formatters/lower'
// Para archivos anidados en una carpeta dentro de utils
import upper from '#shared/utils/formatters/upper'
Este alias asegura importaciones consistentes en toda tu aplicación, independientemente de la ubicación del archivo que importa.
Ver también guide > concepts > auto-imports※Esta página es una traducción no oficial de la documentación oficial de Nuxt.js.
La página correspondiente en la documentación oficial está aquí:
https://nuxt.com/docs/3.x/guide/directory-structure/shared