इस आलेख में, हम विश्लेषण करते हैं कि क्रिएट-नेक्स्ट-ऐप आपके प्रोजेक्ट नाम को कैसे मान्य करता है।
validate: (name) => { const validation = validateNpmName(basename(resolve(name))) if (validation.valid) { return true } return 'Invalid project name: ' validation.problems[0] },
क्या आपने create-next-app कमांड का उपयोग करते समय अपने प्रोजेक्ट को रिक्त स्थान के साथ नाम देने का प्रयास किया है? यदि आपने ऐसा किया है, तो यह आपके प्रोजेक्ट में रिक्त स्थान की अनुमति नहीं देगा क्योंकि जब आपके प्रोजेक्ट का नामकरण करने की बात आती है तो यह कुछ सिद्धांतों का पालन करता है।
तो ये नामकरण परंपरा नियम क्या हैं?
यदि आप इस create-next-app/index.ts की जांच करते हैं, तो यह एक ValidateNpmName नामक फ़ंक्शन को कॉल करता है। इसे helpers/validate-pkg.ts
से आयात किया गया हैयह फ़ंक्शन सीधे आगे है, एक फ़ंक्शन को कॉल करता है जिसे वैलिडेटप्रोजेक्टनाम कहा जाता है जिसे वैलिडेट-एनपीएम-पैकेज-नाम से आयात किया जाता है।
दस्तावेज़ीकरण कहता है कि यदि कोई नाम वैध है, तो आपको नीचे दी गई वस्तु वापस मिल जाएगी:
{ validForNewPackages: true, validForOldPackages: true }
किसी नाम को क्या वैध बनाता है? आइए दस्तावेज़ की फिर से जाँच करें। दस्तावेज़ीकरण ये नामकरण नियम प्रदान करता है:
पैकेज नाम की लंबाई शून्य से अधिक होनी चाहिए
पैकेज नाम के सभी अक्षर लोअरकेस होने चाहिए यानी, किसी भी अपरकेस या मिश्रित केस नाम की अनुमति नहीं है
पैकेज नाम में हाइफ़न शामिल हो सकते हैं
पैकेज नाम में कोई भी गैर-यूआरएल-सुरक्षित वर्ण नहीं होना चाहिए (क्योंकि नाम अंततः यूआरएल का हिस्सा बन जाता है)
पैकेज का नाम से शुरू नहीं होना चाहिए। या _
पैकेज नाम में कोई रिक्त स्थान नहीं होना चाहिए
पैकेज नाम में निम्नलिखित में से कोई भी अक्षर नहीं होना चाहिए: ~)('!*
पैकेज का नाम नोड.जेएस/आईओ.जेएस कोर मॉड्यूल के समान नहीं हो सकता और न ही आरक्षित/ब्लैकलिस्टेड नाम के समान हो सकता है। उदाहरण के लिए, निम्नलिखित नाम अमान्य हैं:
- http
- धारा
- नोड_मॉड्यूल
- favicon.ico
पैकेज नाम की लंबाई 214 से अधिक नहीं हो सकती
ये वे नियम हैं जिन्हें आपको अपने Next.js प्रोजेक्ट का नामकरण करते समय ध्यान में रखना चाहिए।
थिंक थ्रू में, हम ओपन-सोर्स परियोजनाओं में उपयोग की जाने वाली उन्नत कोडबेस वास्तुशिल्प अवधारणाओं को सिखाने के मिशन पर हैं।
नेक्स्ट.जेएस/रिएक्ट में उन्नत वास्तुशिल्प अवधारणाओं का अभ्यास करके अपने कोडिंग कौशल को 10 गुना करें, सर्वोत्तम प्रथाओं को सीखें और उत्पादन-ग्रेड परियोजनाओं का निर्माण करें।
हम खुले स्रोत हैं - https://github.com/thinkthroo/thinkthroo (हमें एक स्टार अवश्य दें!)
हम वेब विकास और तकनीकी लेखन सेवाएं भी प्रदान करते हैं। अधिक जानने के लिए [email protected] पर हमसे संपर्क करें!
1. https://github.com/vercel/next.js/blob/canary/packages/create-next-app/index.ts#L162
2. https://github.com/vercel/next.js/blob/canary/packages/create-next-app/helpers/validate-pkg.ts#L13
3. https://www.npmjs.com/package/validate-npm-package-name
4. https://github.com/npm/validate-npm-package-name/tree/main
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3