Saltar al contenido
Meeko
Escribe para buscar en las guías y en la referencia de la API. Ábrela desde cualquier página con / o Ctrl K; muévete con las flechas y entra con Intro.
Empezar

Contenidos

En esta página

MeekoConfig

interfaz

Configuración de proyecto de meeko.config.ts. Créela con defineMeekoConfig.

ts
import type { MeekoConfig } from "@meekojs/meeko/build";

Código fuente src/modules/define-meeko-config.ts:251

Declaración #

ts
interface MeekoConfig {
	readonly viewTransitions?: boolean
	readonly components?: {
		readonly dirs?: readonly {
			readonly path: string
			readonly prefix?: string
		}[]
	}
	readonly layers?: readonly string[]
	readonly extends?: readonly string[]
	readonly modules?: readonly MeekoModuleEntry[]
	readonly imports?: {
		readonly appDirs?: readonly string[]
		readonly sharedDirs?: readonly string[]
		readonly serverDirs?: readonly string[]
	}
	readonly alias?: Readonly<Record<string, string | false>>
	readonly server?: MeekoServerConfig
	readonly css?: { readonly scopeAttribute?: 'all' | 'matched' }
	readonly document?: DocumentConfig
	readonly dev?: {
		readonly serverLogs?: boolean
	}
	readonly devtools?: boolean | MeekoDevtoolsConfig
	readonly site?: string
	readonly sitemap?: boolean | SitemapConfig
	readonly robots?: boolean | RobotsConfig
	readonly theme?: boolean | ThemeConfig
}

Ejemplo #

ts
import type { MeekoConfig } from "@meekojs/meeko/framework";

const config: MeekoConfig = {
  layers: ["./layers/base"],
  modules: ["@acme/seo", ["./modules/hello", { greeting: "Hola" }]],
  imports: { serverDirs: ["server/services"] },
  server: { adapter: "node", port: 3000 },
};

Propiedades #

viewTransitions #

propiedad sólo lectura opcional

readonly viewTransitions?: boolean

Activa View Transitions nativas en la navegación cliente; desactivadas por defecto. Respeta movimiento reducido.

components #

propiedad sólo lectura opcional

readonly components?: {
	readonly dirs?: readonly {
		readonly path: string
		readonly prefix?: string
	}[]
}

Component directories, relative to each source root. The default app/components is always included.

layers #

propiedad sólo lectura opcional desde 1.2.0

readonly layers?: readonly string[]

Layers: carpetas del proyecto con su propio app/pages, componentes, autoimports y app/plugins, aplicadas después de la aplicación en el orden escrito. Las colisiones de URL fallan.

extends #

propiedad sólo lectura opcional

readonly extends?: readonly string[]

Alias de layers que se mantiene: sus carpetas van antes que las de layers.

modules #

propiedad sólo lectura opcional

readonly modules?: readonly MeekoModuleEntry[]

Módulos creados con defineMeekoModule: un módulo importado, un nombre de paquete, una ruta a un módulo o [módulo, opciones], aplicados en orden. Hasta 1.1 eran carpetas con app/pages; esas carpetas siguen funcionando como layers en 1.x, con un aviso (use layers).

imports #

propiedad sólo lectura opcional

readonly imports?: {
	readonly appDirs?: readonly string[]
	readonly sharedDirs?: readonly string[]
	readonly serverDirs?: readonly string[]
}

Carpetas de autoimports además de las de por defecto, relativas a la raíz del proyecto y de cada layer. Cada carpeta toma el ámbito de la carpeta que la contiene, como las de por defecto.

alias #

propiedad sólo lectura opcional desde 1.5.0

readonly alias?: Readonly<Record<string, string | false>>

Aliases de ruta propios, o cambios de los de Meeko. Cada clave es un prefijo que termina en / y cada valor, una carpeta del proyecto (relativa a su raíz; también la de un layer) o false para quitar el alias. Por defecto existen ~/ (la raíz del proyecto), @/ (app/), #shared/ (shared/) y #server/ (server/, sólo en el código de servidor). Un alias propio toma el ámbito de la carpeta a la que apunta, como los autoimports: dentro de server/, sólo en el servidor; dentro de app/, en app/ y server/ pero no en shared/; en otro lugar, en todo el proyecto. Se aplica en Vite (meeko dev, meeko build y todos los adaptadores), en los tsconfig generados, en el editor y en los módulos de @utilities.

server #

propiedad sólo lectura opcional

readonly server?: MeekoServerConfig

Destino del servidor de producción. Por defecto, { adapter: "node" }.

css #

propiedad sólo lectura opcional

readonly css?: { readonly scopeAttribute?: 'all' | 'matched' }

Estilos de los componentes. scopeAttribute elige qué elementos reciben el atributo de <style scoped>: "all" (por defecto en 1.x), todos los de la plantilla; "matched" (desde 1.2), sólo los que algún selector con ámbito puede seleccionar. Con "matched", una clase o un atributo que el script añade con la API del DOM a un elemento sin ref: ni on: no recibe los estilos con ámbito si ese elemento quedó sin atributo. En 2.0, "matched" pasará a ser el valor por defecto.

document #

propiedad sólo lectura opcional desde 1.2.0

readonly document?: DocumentConfig

Documento HTML de la aplicación: lang de <html> y etiquetas y atributos comunes de <head>, con la menor prioridad frente a useHead y al head de las páginas. Los módulos añaden sus entradas con meeko.addHead; las de este campo se aplican después. Se fija en el build y llega también al navegador, porque termina en el HTML.

dev #

propiedad sólo lectura opcional desde 1.3.0

readonly dev?: {
	readonly serverLogs?: boolean
}

Opciones de meeko dev; no afectan a meeko build ni a meeko start. serverLogs: false deja de reenviar a la consola del navegador lo que el código de servidor escribe con console.log, info, warn, error o debug mientras atiende una petición (activado por defecto). La terminal lo muestra igual en ambos casos.

devtools #

propiedad sólo lectura opcional desde 1.8.0

readonly devtools?: boolean | MeekoDevtoolsConfig

Meeko DevTools en meeko dev: con true (o un objeto con panel distinto de false), meeko dev monta el panel dentro de la página sin código de la aplicación. Nunca llega a meeko build, meeko start ni a las páginas prerenderizadas. Por defecto, false en 1.x: el panel no aparece salvo que se pida. La extensión de Chrome y el puente del editor funcionan con o sin esta opción.

site #

propiedad sólo lectura opcional desde 1.3.0

readonly site?: string

URL pública del sitio, de la que sólo cuenta el origen (https://example.com, sin ruta). La usan sitemap.xml, robots.txt y, con document.seo, <link rel="canonical"> y og:url. Sin ella se usa MEEKO_PUBLIC_ORIGIN del entorno del build. Se fija en el build; no cambia las comprobaciones de Origin, que siguen leyendo MEEKO_PUBLIC_ORIGIN o publicOrigin de server/runtime.ts al ejecutarse.

sitemap #

propiedad sólo lectura opcional desde 1.3.0

readonly sitemap?: boolean | SitemapConfig

Escribe sitemap.xml con las páginas prerenderizadas y las rutas sin parámetros, salvo las excluidas y las prerenderizadas con <meta name="robots"> noindex. Necesita site o MEEKO_PUBLIC_ORIGIN. Desde 1.7, también las URL de sitemapEntries de definePage, como las de las rutas dinámicas con SSR.

robots #

propiedad sólo lectura opcional desde 1.3.0

readonly robots?: boolean | RobotsConfig

Escribe robots.txt con las reglas de User-agent: * y, con sitemap, su URL absoluta. No puede convivir con un public/robots.txt.

theme #

propiedad sólo lectura opcional desde 1.4.0

readonly theme?: boolean | ThemeConfig

Tema claro/oscuro (y temas propios) sin parpadeo: la elección se guarda en una cookie, el servidor escribe el tema en <html> desde el primer byte y un script en línea de <head> lo aplica antes de pintar cuando el servidor no lo conoce (páginas prerenderizadas, adaptador static, modo "system" sin client hint). Activa useTheme(). true usa los valores por defecto; sin theme, nada cambia.

Véase también #

¿Te sirvió esta página?

Añadir un comentario

Se envía al elegir «Sí» o «No». Solo se guardan la página, tu respuesta y el comentario: ni cookies ni datos tuyos.

0 de 2000 caracteres

Editar en GitHub: packages/meeko/src/modules/define-meeko-config.ts