Vercel
Différences avec Node/Bun
Section intitulée « Différences avec Node/Bun »| Node / Bun | Vercel / Netlify | |
|---|---|---|
| Config | chaîne routesDir | objet ServerlessConfig |
| Découverte des routes | loadRoutes() au démarrage | Manifest pré-compilé |
| Étape de build | Optionnelle | Requise (lacis build) |
Structure du projet
Section intitulée « Structure du projet »my-app/├── api/│ └── [...slug].ts ← handler catch-all Vercel├── routes/│ ├── users/│ │ └── index.ts│ └── posts/│ └── [id]/│ └── index.ts└── vercel.jsonHandler API
Section intitulée « Handler API »// api/[...slug].tsimport { vercelAdapter } from 'lacis/adapters'import { routes, middlewares } from '../routes/_manifest.js'
const handler = vercelAdapter.createHandler({ routes, middlewares })
export default handlervercel.json
Section intitulée « vercel.json »{ "rewrites": [ { "source": "/(.*)", "destination": "/api/slug" } ]}Flux de déploiement
Section intitulée « Flux de déploiement »-
Ajoutez
lacis buildà vos scripts danspackage.json:{"scripts": {"build": "lacis build"}} -
Committez votre handler :
Fenêtre de terminal git add api/ vercel.jsongit commit -m "add lacis vercel handler" -
Déployez :
Fenêtre de terminal vercel deploy --prodVercel exécute
lacis buildautomatiquement à chaque déploiement, régénérant le manifest de routes.
Configuration optionnelle
Section intitulée « Configuration optionnelle »const handler = vercelAdapter.createHandler({ routes, middlewares, cors: { origin: 'https://monapp.com', credentials: true }, hooks: { onNotFound: async (req, res) => { res.status(404).json({ error: 'Non trouvé', path: req.url }) }, },})