Layers
Layers are self-contained modules that extend your Kimesh application with routes, components, composables, and configuration. They enable modular architecture and code reuse across projects.
What is a Layer?
A layer is a mini Kimesh application with its own:
routes/— File-based routes (merged with the host)components/— Auto-imported componentscomposables/— Auto-imported composableskimesh.config.ts— Configuration (merged with host config)
Using Layers
Local Layers
ts
// kimesh.config.ts
import { defineKmConfig } from '@kimesh/kit'
export default defineKmConfig({
extends: [
'./layers/ui-layer',
'./layers/auth-layer',
],
})npm Layers
ts
export default defineKmConfig({
extends: [
'@my-org/base-layer',
],
})Layer Structure
layers/auth-layer/
├── src/
│ ├── routes/
│ │ ├── _auth.vue # Pathless layout
│ │ └── _auth/
│ │ ├── login.vue # /login
│ │ └── register.vue # /register
│ ├── components/
│ │ └── AuthForm.vue # Auto-imported as <AuthForm>
│ └── composables/
│ └── useAuth.ts # Auto-imported as useAuth()
├── kimesh.config.ts
└── package.jsonLayer Configuration
ts
// layers/auth-layer/kimesh.config.ts
import { defineKmConfig } from '@kimesh/kit'
export default defineKmConfig({
name: 'auth-layer',
basePath: '/auth', // Prefix all routes
})Creating Layers with CLI
bash
# Create a new layer
km layer create my-layer
# List all layers
km layer list
# Get layer info
km layer info my-layer
# Validate layer structure
km layer validate my-layerHow Layers Merge
When multiple layers extend the host application:
| Feature | Merge Strategy |
|---|---|
| Routes | Merged — layer routes added to host router |
| Components | Merged — host components override layer conflicts |
| Composables | Merged — host composables override layer conflicts |
| CSS | Concatenated |
| Config | Deep merged — host config takes priority |
| Modules | Concatenated (deduplicated) |
Next Steps
- Layers Guide — Full guide with advanced patterns
- CLI Layer Commands — CLI reference