Erro no build em CI/CD
Se você receber um erro como este no 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 errorAqui estão algumas soluções:
1. Dicionários ausentes
Certifique-se de que os dicionários sejam construídos na etapa de build.
É frequente que o build funcione localmente, mas não no CI/CD. A razão é que localmente o diretório .intlayer está presente, mas no CI/CD não está, pois é excluído do build.
Você pode corrigir isso adicionando um script de prebuild no package.json do seu projeto.
Copiar o código para a área de transferência
{ // ... "scripts": { "prebuild": "npx intlayer dictionaries build", // Será executado antes do build "build": "next build", },}Note que se você usar a função withIntlayer, ou o plugin bundler equivalente para seu framework, o script de prebuild será executado antes do build.
2. Variáveis de ambiente ausentes no momento do build / execução
Em um container, ou plataforma de implantação automática, é recomendado excluir o arquivo .env do build.
Copiar o código para a área de transferência
# Variáveis de ambiente.env**/.env.env.***/.env.*Se suas variáveis de ambiente não estiverem disponíveis no momento do build, um erro será lançado.
import { Metadata } from "next";export const generateMetadata = async ({ params }): Promise<Metadata> => ({ metadataBase: new URL(process.env.NEXT_PUBLIC_URL),});Provavelmente não está relacionado ao Intlayer. Então, verifique suas variáveis de ambiente no momento do build na sua plataforma CI/CD.