CI/CD में बिल्ड पर त्रुटि
यदि आपको 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 errorयहाँ कुछ समाधान दिए गए हैं:
1. डिक्शनरी गायब हैं
सुनिश्चित करें कि डिक्शनरी बिल्ड के चरण में बनाई गई हैं।
यह सामान्य है कि बिल्ड स्थानीय रूप से काम करता है लेकिन CI/CD पर नहीं। इसका कारण यह है कि स्थानीय रूप से, .intlayer निर्देशिका मौजूद होती है, लेकिन CI/CD पर यह बिल्ड से बाहर रखी जाती है।
आप इसे अपने प्रोजेक्ट के package.json में एक प्रीबिल्ड स्क्रिप्ट जोड़कर ठीक कर सकते हैं।
कोड को क्लिपबोर्ड पर कॉपी करें
{ // ... "scripts": { "prebuild": "npx intlayer dictionaries build", // बिल्ड से पहले चलेगा "build": "next build", },}ध्यान दें कि यदि आप withIntlayer फ़ंक्शन का उपयोग करते हैं, या अपने फ्रेमवर्क के लिए समकक्ष बंडलर प्लगइन, तो प्रीबिल्ड स्क्रिप्ट बिल्ड से पहले चलेगा।
2. बिल्ड / रन टाइम पर पर्यावरण चर गायब हैं
कंटेनर या ऑटो-डिप्लॉयड प्लेटफ़ॉर्म में, यह अनुशंसित है कि .env फ़ाइल को बिल्ड से बाहर रखा जाए।
कोड को क्लिपबोर्ड पर कॉपी करें
# पर्यावरण चर.env**/.env.env.***/.env.*यदि आपके पर्यावरण चर बिल्ड समय पर उपलब्ध नहीं हैं, तो एक त्रुटि उत्पन्न होगी।
import { Metadata } from "next";export const generateMetadata = async ({ params }): Promise<Metadata> => ({ metadataBase: new URL(process.env.NEXT_PUBLIC_URL),});यह संभवतः Intlayer से संबंधित नहीं है। इसलिए अपने CI/CD प्लेटफ़ॉर्म पर बिल्ड समय पर अपने पर्यावरण चर की जांच करें।