Configuración
Referencia real de ecomiq.config.js: tienda, API, tema, desarrollo y despliegue.
La CLI carga ecomiq.config.js desde la raíz y valida su default export.
defineConfig es recomendable porque añade tipos y aplica la misma validación.
import { defineConfig } from "@ecomiq/storefront/config";
export default defineConfig({
domain: "marketplace",
api: {
baseUrl: "https://storefront.ecomiq.pe",
version: "v1",
timeoutMs: 10_000,
},
theme: {
primary: "oklch(0.45 0.15 165)",
primaryForeground: "white",
radius: "0.75rem",
},
dev: {
port: 3000,
runtime: "node",
https: true,
},
deploy: {
target: "cloudflare",
name: "andina-market",
routes: [{ pattern: "tienda.ejemplo.pe", custom_domain: true }],
},
env: {
PUBLIC_SUPPORT_EMAIL: "soporte@ejemplo.pe",
},
});Campos
| Campo | Requerido | Uso |
|---|---|---|
domain | Sí | Identidad enviada como x-Store-Domain; acepta slug o dominio. |
api | No | URL, versión, headers adicionales y timeout de Storefront API. |
theme | No | Variables visuales que sobreescriben el design system. |
dev | No | Puerto, API local, runtime y HTTPS para ecomiq dev. |
deploy | No | Nombre y rutas del Worker de Cloudflare. |
env | No | Variables no secretas escritas en vars del Worker. |
domain no es el nombre, slug editorial ni SEO de la tienda. Esos datos llegan
de /v1/settings.
API y valores por defecto
| Campo | Valor por defecto |
|---|---|
api.baseUrl | https://storefront.ecomiq.pe |
api.version | v1 |
api.timeoutMs | 10000 ms |
dev.port | 3000 |
dev.runtime | node |
dev.https | false |
deploy.target | cloudflare |
deploy.name | Versión normalizada de domain |
dev.apiBaseUrl reemplaza api.baseUrl solo durante desarrollo.
dev.runtime: "workerd" emula Cloudflare localmente; build y deploy siempre
usan workerd.
Para HTTPS puedes usar un certificado automático o archivos PEM:
dev: {
https: true,
}dev: {
https: {
cert: "./certs/localhost.pem",
key: "./certs/localhost-key.pem",
},
}Tema
theme acepta únicamente primary, primaryForeground, background,
foreground, accent y radius. La CLI los convierte en variables CSS.
Qué llega al navegador
El bundle cliente recibe solo:
type PublicEcomiqConfig = {
domain: string;
theme?: EcomiqThemeConfig;
};api, dev, deploy y env permanecen en el servidor.
No guardes secretos en env
env se escribe como texto en la configuración generada de Wrangler. Usa
Cloudflare Secrets para claves, tokens y BETTER_AUTH_SECRET.