Erreur lors du build en CI/CD
Si vous obtenez une erreur comme celle-ci sur Next.js :
Error: An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the errorVoici quelques solutions :
1. Dictionnaires manquants
Assurez-vous que les dictionnaires sont construits lors de l'étape de build.
Il est fréquent que le build fonctionne localement mais pas en CI/CD. La raison est qu'en local, le répertoire .intlayer est présent, mais en CI/CD, il ne l'est pas car il est exclu du build.
Vous pouvez corriger cela en ajoutant un script de prébuild dans le package.json de votre projet.
Copier le code dans le presse-papiers
{ // ... "scripts": { "prebuild": "npx intlayer dictionaries build", // S'exécutera avant le build "build": "next build", },}Notez que si vous utilisez la fonction withIntlayer, ou le plugin bundler équivalent pour votre framework, le script de prébuild sera exécuté avant le build.
2. Variables d'environnement manquantes au moment du build / de l'exécution
Dans un conteneur, ou une plateforme à déploiement automatique, il est recommandé d'exclure le fichier .env du build.
Copier le code dans le presse-papiers
# Variables d'environnement.env**/.env.env.***/.env.*Si vos variables d'environnement ne sont pas disponibles au moment du build, une erreur sera levée.
import { Metadata } from "next";export const generateMetadata = async ({ params }): Promise<Metadata> => ({ metadataBase: new URL(process.env.NEXT_PUBLIC_URL),});Cela n'est probablement pas lié à Intlayer. Vérifiez donc vos variables d'environnement au moment du build sur votre plateforme CI/CD.