Cloudflare Pages
deploy-targets.json définit deux cibles, chacune un projet Cloudflare Pages lié à une
branche :
{
"prod": {
"project": "votrestartup",
"branch": "main",
"site": {
"url": "https://votrestartup.ai",
"dataMode": "live",
"apiBaseUrl": "https://api.votrestartup.ai",
"recaptchaSiteKey": "..."
}
},
"local": {
"project": "votrestartup-local",
"branch": "dev",
"default": true,
"site": { "url": "https://local.votrestartup.ai", "dataMode": "demo", "noindex": true }
}
}
Créez les deux projets depuis le tableau de bord Cloudflare avec l'intégration GitHub, en
indiquant npm run build comme commande de build, _site comme dossier de sortie et la
branche de la cible comme branche de production. Chaque push sur cette branche se déploie
alors tout seul : le build lit CF_PAGES_BRANCH et applique les réglages site de la cible
correspondante. Toute autre branche, comme l'aperçu d'une pull request, génère la cible
default. Pour déployer depuis votre machine, lancez :
bun run deploy:check # valide les deux cibles, sans déployer
bun run deploy:local # build et déploiement de la cible local
bun run deploy:prod # build et déploiement de la cible prod
Le build d'une cible, qu'il vienne d'un push ou de votre machine, échoue sur une url
d'exemple ou un dataMode absent. Une cible live exige aussi une URL d'API en HTTPS et
une vraie clé reCAPTCHA. noindex ajoute une balise meta robots noindex à chaque page,
pour que la copie de préproduction reste hors des résultats de recherche.
bun run preview sert la version générée localement avec Wrangler, y compris les
règles de cache de src/_headers et les redirections de src/_redirects.
Mise en cache
Les fichiers CSS et JavaScript de production portent une empreinte dans leur nom, et
src/_headers les met en cache pendant un an. Les images et les polices le sont pendant
30 jours. Le HTML n'est jamais mis en cache longtemps : un déploiement est visible
immédiatement.
Avant le lancement
- Remplacez les témoignages d'exemple et les signatures du blogue par les vôtres.
- Rédigez les pages légales liées dans le pied de page.
- Lancez une fois
bun run lighthouse:checketbun run links:check:externalsur le contenu final.