Mashinangiz ishga tushganda yuklanadigan narsa — qattiq o‘rnatilgan dastur emas. Bu qismlar daraxti bo‘lib, u to‘rt qatlamda yig‘iladi. Tartib har doim bir xil, va aynan shu tartibni tushunish ko‘pchilik kutilmaganliklardan qutqaradi.
Ikki asosiy tushuncha
| Tushuncha | Ta’rif |
|---|---|
| Profile | Nomlangan konfiguratsiya. Qaysi bundle’larni stack qilishini ro‘yxatlaydi, o‘rnatgan tashqi plaginlaringizni saqlaydi va o‘z sozlamalaringizni tutadi |
| Bundle | Qismlar paketi. Bir to‘plam qismlarni ularni o‘rnatuvchi konfiguratsiya bilan birga tarqatish usuli |
Profile — bu «men shu tarzda ishga tushaman» degan nomlangan reja. Bundle — bu «mana shu qismlar to‘plami birga keladi» degan paket. Profile bundle’larni birlashtiradi, bundle’lar qismlarni birlashtiradi.
Qo‘llanish tartibi
Qatlamlar har doim bir xil tartibda qo‘llanadi:
| Tartib | Qatlam | Qayerdan keladi |
|---|---|---|
| 1 | Bundle’lar | E’lon qilingan tartibda |
| 2 | Profile sozlamalari | Siz tanlagan profile |
| 3 | Mashina sozlamalari | Mashinaning umumiy konfiguratsiyasi |
| 4 | Ishga tushirishda berilganlar | Buyruq satri argumentlari |
Har bir keyingi qatlam oldingisining ustiga qo‘llanadi. Tartibni tushunmasdan sozlamani o‘zgartirsangiz, natija siz kutgandek bo‘lmasligi mumkin.
Muhim
Qisman birlashtirish (partial merge) yo‘q. Biror qismni o‘zgartirsangiz, sizning konfiguratsiyangiz ularnikini butunlay almashtiradi — o‘zgartirmoqchi bo‘lmagan maydonlarni ham qayta yozishingizga to‘g‘ri keladi. Bu hujjatlashtirilgan cheklov va eng oson yo‘l qo‘yiladigan konfiguratsiya xatosi hisoblanadi.
Ishga tushirish argumentlari — qatlam emas
Ishga tushirishda berilgan argumentlar konfiguratsiya qatlamiga o‘xshaydi, lekin unday emas. Ular boshqa narsa: ularni kerak bo‘lgan qismlar o‘zlari o‘qiydi, qatlam mexanizmi orqali emas.
Bu farqni eslab qolish muhim — chunki argumentga tayangan qism qatlamlar ustunligi haqidagi taxminlaringizni buzishi mumkin.
Standart bundle’lar
Tizim bilan birga keladigan uchta bundle bor:
| Bundle | Nima olib keladi |
|---|---|
| Base | Model adapterlari, tool’lar, saqlash (persistence), izolyatsiya, sozlamalar va credentials |
| Web application | Veb-ilova uchun qismlar |
| Headless execution | Interfeyssiz (headless) bajarish uchun qismlar |
Eslatma
Base bundle har qanday profile’ning birinchi qatlami bo‘ladi — u doim mavjud. Har bir bundle o‘zini `package.json` faylida `dsh` kaliti ostida e’lon qiladi.
Amalda nima muhim?
To‘rt qatlamni bilish birinchi kuniyoq foydali bo‘ladi:
- Biror narsa ishlamayotgan bo‘lsa, avval qaysi qatlam sabab bo‘lishi mumkinligini aniqlang — ko‘pincha bu profile yoki mashina sozlamalaridagi qatlam to‘qnashuvi.
- Bundle qo‘shganingizda, uning sozlamalari qaysi qatlamda ekanini bilib qo‘ying.
- «Qisman birlashtirish yo‘q» qoidasini unutmang: to‘liq bo‘lmagan o‘zgartirish boshqa sozlamalarni o‘chirib tashlaydi.
Amaliy maslahat
Konfiguratsiya xatosini tez topishning eng ishonchli usuli — o‘zgarishni kichik qilib, har qadamda tekshirib borish. Qatlamlar o‘rnatilgan tartibda qo‘llanadi, shuning uchun xatoning manbai deyarli har doim eng oxirgi o‘zgartirgan qatlamingizda bo‘ladi.
Xulosa
Mashina to‘rt qatlamda yig‘iladi: bundle’lar (e’lon tartibida), profile sozlamalari, mashina sozlamalari va ishga tushirish argumentlari. Argumentlar qatlam emas — ularni qismlar o‘zi o‘qiydi. Qatlamlar orasida qisman birlashtirish yo‘q, shuning uchun o‘zgartirilgan qism butunlay almashtiriladi. Keyingi darsda bu qismlar ish paytida qanday voqealar chiqarishini ko‘ramiz — turn anatomiyasini.