Dalam artikel ini, kami menganalisis cara create-next-app mengesahkan nama projek anda.
validate: (name) => { const validation = validateNpmName(basename(resolve(name))) if (validation.valid) { return true } return 'Invalid project name: ' + validation.problems[0] },
Adakah anda cuba menamakan projek anda dengan ruang di dalamnya apabila menggunakan arahan create-next-app? jika anda telah berbuat demikian, ia tidak akan membenarkan ruang dalam projek anda kerana ia mengikut prinsip tertentu semasa menamakan projek anda.
Jadi apakah peraturan konvensyen penamaan ini?
Jika anda menyemak create-next-app/index.ts ini, ia akan memanggil fungsi bernama validateNpmName. Ini diimport daripada helpers/validate-pkg.ts
Fungsi ini lurus ke hadapan, memanggil fungsi bernama validateProjectName yang diimport daripada validate-npm-package-name.
Dokumentasi mengatakan bahawa jika nama adalah sah, anda akan mendapat kembali objek di bawah:
{ validForNewPackages: true, validForOldPackages: true }
Apakah yang menjadikan nama sah? mari semak dokumentasi sekali lagi. Documentataion menyediakan peraturan Penamaan ini:
panjang nama pakej hendaklah lebih besar daripada sifar
semua aksara dalam nama pakej mestilah huruf kecil iaitu, nama huruf besar atau huruf campuran tidak dibenarkan
nama pakej boleh terdiri daripada sempang
nama pakej tidak boleh mengandungi sebarang aksara bukan url-selamat (kerana nama akhirnya menjadi sebahagian daripada URL)
nama pakej tidak seharusnya bermula dengan . atau _
nama pakej tidak boleh mengandungi sebarang ruang
nama pakej tidak boleh mengandungi mana-mana aksara berikut: ~)(‘!*
nama pakej tidak boleh sama dengan modul teras node.js/io.js atau nama simpanan/disenarai hitam. Contohnya, nama berikut tidak sah:
— http
— strim
— modul_nod
— favicon.ico
panjang nama pakej tidak boleh melebihi 214
Ini ialah peraturan yang perlu anda ingat semasa menamakan projek Next.js anda.
Di Think Throo, kami berada dalam misi untuk mengajar konsep seni bina asas kod lanjutan yang digunakan dalam projek sumber terbuka.
10x kemahiran pengekodan anda dengan mempraktikkan konsep seni bina lanjutan dalam Next.js/React, pelajari amalan terbaik dan bina projek gred pengeluaran.
Kami adalah sumber terbuka — https://github.com/thinkthroo/thinkthroo (Beri kami bintang!)
Kami juga menyediakan pembangunan web dan perkhidmatan penulisan teknikal. Hubungi kami di hello@thinkthroo.com untuk mengetahui lebih lanjut!
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
Atas ialah kandungan terperinci create-next-app mengesahkan nama apl anda menggunakan pakej ini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!