extends
The former name of layers, still supported in 1.x without a warning; its folders come before those in layers.
extends was the name of layers through 1.1. It accepts the same values (project folders with app/pages) and applies the same rules, and continues to work throughout 1.x without a warning. The only difference is the order: its folders come before those in layers.
In a new project, use layers.
Usage#
// meeko.config.ts for a 1.0 or 1.1 project
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({
extends: ["./layers/base"],
});Type#
readonly extends?: readonly string[]Options#
| Value | Type | Default | Description |
|---|---|---|---|
extends |
readonly string[] |
[] |
Project folders with app/pages, like those in layers. |
Result#
The extends folders are added as layers immediately after the application and before the layers folders. This order determines which named layout wins when two sources declare it, and the search order for the ~/, @/, #shared/ and #server/ aliases.
Examples#
Migrating to layers#
// Before (1.1)
// export default defineMeekoConfig({ extends: ["./layers/base", "./layers/admin"] });
// After (1.2 or later): the same order.
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({ layers: ["./layers/base", "./layers/admin"] });Using both during a migration#
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({
extends: ["./layers/legacy"], // first
layers: ["./layers/base"], // after
});Common mistakes#
The same folder in extends and layers#
export default defineMeekoConfig({ extends: ["./layers/base"], layers: ["./layers/base"] });Raíz de fuentes de Meeko repetida: <ruta>: a folder can only be one source.
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({ layers: ["./layers/base"] });A folder outside the project#
export default defineMeekoConfig({ extends: ["../outside"] });meeko dev, meeko build, meeko check and meeko routes stop with layer ../outside sale de la raíz del proyecto <ruta>.
import { defineMeekoConfig } from "@meekojs/meeko/framework";
export default defineMeekoConfig({ extends: ["./layers/outside"] });Notes#
- No warning. Unlike folders in
modules,extendsdoes not print a warning and is not scheduled for removal in1.x. - Editor. Like
layers, the editor reads it without executing the configuration if it is a literal array of strings.