Mundarija (25)
- Bu darsda
- 1. Nega bu kerak?
- 2. Ildiz xaritasi
- 3. .nvmrc — bir qatorlik kelishuv
- 4. .env.example — sirsiz ro'yxat
- 4.1 Muammo
- 4.2 Vazifalar qadami: .env.example
- 4.3 Vite uni o'qimaydi — tekshiramiz
- 5. .gitattributes — CRLF tuzog'i
- 5.1 Tuzoqni takrorlaymiz
- 5.2 Vazifalar qadami: .gitattributes
- 6. LICENSE — huquqiy pasport
- 6.1 Nega vazifalar ga kerak
- 6.2 Vazifalar qadami: MIT
- 7. .dockerignore — o'qish darajasida
- 8. Yana uchraydigan ildiz fayllar
- 9. Ko'p uchraydigan xatolar
- 10. Mashqlar
- 1-mashq (oson): qaysi fayl?
- 2-mashq (o'rta): CRLF ni o'z ko'zingiz bilan
- 3-mashq (o'rta): .env.example yozing
- 4-mashq (qiyin): Vazifalar qadami
- 11. Real ishda
- Xulosa
- Manbalar
Loyiha ildizidagi fayllar: .env.example, .nvmrc, LICENSE, .gitattributes va .dockerignore
Qisqacha: Loyiha ildizidagi har kichik fayl bitta aniq xatoning oldini oladi. Masalan,
.env.exampleqaysi muhit o'zgaruvchilari kerakligini (sirsiz) aytadi,.nvmrcesa Node versiyasini.LICENSEkodni kim va qanday ishlata olishini belgilaydi. Windows'dagi CRLF tuzog'idan.gitattributessaqlaydi, Docker obrazga maxfiy fayl tushishidan —.dockerignore.vazifalarga uchtasini qo'shamiz:.gitattributes,LICENSE,.env.example.
Bu darsda
- Ildizdagi fayllarni guruhlab, har birining vazifasini ayta olasiz.
.env.exampleni to'g'ri yozasiz va nega Vite uni o'qimasligini ko'rasiz..gitattributessiz Windows'da Prettier qanday "yiqilishini" va qanday tuzalishini tekshirasiz.vazifalarga MITLICENSEqo'shasiz vapackage.jsondagilicensebilan moslaysiz..dockerignoreni o'qiy olasiz (Docker — 33-qismda).
Oldin bilishingiz kerak: .gitattributes va qator oxirlari, Vite III: env va rejimlar, GitHub asoslari: README, LICENSE.
1. Nega bu kerak?
Malika vazifalar ni birinchi marta klon qildi. Uning kompyuterida — Windows. npm ci, keyin npm run check:
[warn] tsconfig.json
[warn] tsconfig.node.json
[warn] vite.config.ts
[warn] Code style issues found in 55 files. Run Prettier with --write to fix."55 ta faylda uslub muammosi". Malika hech narsa o'zgartirmagan! Sardor'ning kompyuterida esa hammasi toza. Keyin u so'radi: "API manzilini qayerga yozaman? Node'ning qaysi versiyasi kerak? Kodni o'z portfoliomga qo'ysam bo'ladimi?"
Bu savollarning hammasiga javob — loyiha ildizidagi kichik fayllar. Ular ko'pincha bir-ikki qatorli, lekin har biri bir haftalik chalkashlikning oldini oladi. Oshxona eshigidagi yozuvlar kabi: "ish vaqti", "kirish faqat xodimlar uchun", "nam pol". Har biri kichik, lekin hammasi kerak.
2. Ildiz xaritasi
vazifalar ning bugungi ildizi (papkalarsiz) — 23 ta fayl. Guruhlab o'qiymiz:
flowchart LR
R["vazifalar/"] --> P["Paket<br/>package.json, lock,<br/>.npmrc, .nvmrc"]
R --> G["Git<br/>.gitignore,<br/>.gitattributes, .husky/"]
R --> T["Asboblar<br/>tsconfig*, vite.config,<br/>eslint, prettier, commitlint"]
R --> E["Muhit<br/>.env.*, .env.example"]
R --> H["Odamlar uchun<br/>README, LICENSE,<br/>AGENTS.md"]| Guruh | Fayllar | Qaysi darsda |
|---|---|---|
| Paket | package.json, package-lock.json, .npmrc, .nvmrc |
package.json I, Lock-fayllar, Ta'minot zanjiri, Versiya menejerlari |
| Git | .gitignore, .gitattributes, .husky/, .lintstagedrc.json |
.gitignore, bugun, Git hooklar |
| Asboblar | tsconfig*.json, vite.config.ts, eslint.config.js, .prettierrc, commitlint.config.js |
tsconfig app/node, Vite II, ESLint I, Prettier, commitlint |
| Muhit | .env.production, .env.development, .env.example |
Vite III, bugun |
| Odamlar | README.md, LICENSE, AGENTS.md, TEXNIK-QARZ.md |
GitHub asoslari, bugun |
Nuqta bilan boshlangan fayllar (.nvmrc, .gitattributes) — Linux va macOS'da "yashirin": ls ularni ko'rsatmaydi, ls -a kerak. VS Code esa ko'rsatadi.
Bugun to'rt fayl: .nvmrc (takror), .env.example, .gitattributes, LICENSE — va Docker'ning .dockerignore i.
3. .nvmrc — bir qatorlik kelishuv
Node versiya menejerlari darsida yozgan edik:
24Shu bitta qator. nvm va fnm use buyrug'ida uni o'qiydi, GitHub Actions — node-version-file: .nvmrc. package.json dagi "engines": { "node": ">=24" } esa boshqa savolga javob beradi: .nvmrc — "qaysi versiyani o'rnat", engines — "qaysi versiyalarda ishlaydi". Ba'zi loyihalarda o'rniga .node-version fayli bo'ladi — mazmuni bir xil, fnm va Volta ikkalasini ham tushunadi.
4. .env.example — sirsiz ro'yxat
4.1 Muammo
Vite III darsidan bilasiz: vazifalar da ikki env fayl git'da (.env.production, .env.development), shaxsiy sozlamalar esa *.local fayllarda — .gitignore ularni yashiradi. Malika dev proxy ni o'z backend'iga yo'naltirmoqchi. Qaysi o'zgaruvchi? Qaysi faylga? Repoda .local fayl yo'q — namuna ham yo'q.
.env.example — loyiha kutadigan hamma muhit o'zgaruvchilarining ro'yxati, izohlar va xavfsiz namunaviy qiymatlar bilan. U git'ga kiradi. Haqiqiy kalit, parol, token — hech qachon.
4.2 Vazifalar qadami: .env.example
Branch: chore/ildiz-fayllar.
# Muhit o'zgaruvchilari (16/#28, #32) — namuna, Vite bu faylni O'QIMAYDI.
# Umumiy qiymatlar git'da: .env.production (npm run build) va
# .env.development (npm run dev). O'zingizniki — .env.development.local
# (git'ga kirmaydi, .gitignore: *.local) ga nusxa qilib o'zgartiring.
# Brauzer kodi so'raydigan API manzili (import.meta.env.VITE_API_URL).
# VITE_ bilan boshlangani saytga yoziladi — parol, token QO'YMANG
VITE_API_URL=/api/mashq
# Faqat npm run dev: /api/... so'rovlari qayerga uzatiladi (proxy).
# Masalan, 25-qismdagi o'z backend'ingiz:
# API_PROXY=http://localhost:3000
API_PROXY=https://ilmhamroh.uzHar o'zgaruvchi oldida — nima uchun, qayerda o'qiladi va xavf haqida eslatma. Yaxshi .env.example ning uch belgisi:
- Hamma kalit bor — kod o'qiydigan har o'zgaruvchi.
- Izoh bor — nima uchun va qaysi rejimda.
- Qiymat xavfsiz — sir bo'lsa,
API_KEY=(bo'sh) yokiAPI_KEY=sizning_kalitingiz.
4.3 Vite uni o'qimaydi — tekshiramiz
Fayl nomi .env. bilan boshlansa ham, Vite faqat .env, .env.local, .env.[rejim], .env.[rejim].local ni o'qiydi. .env.example ga sinov uchun VITE_SINOV=bor qo'shdik va Vite'ning o'z funksiyasi loadEnv bilan so'radik:
node --input-type=module -e '
import { loadEnv } from "vite";
console.log(loadEnv("development", process.cwd(), "VITE_"));'{ VITE_API_URL: '/api/mashq' }VITE_SINOV yo'q — VITE_API_URL esa .env.development dan keldi. Endi .env.example ni .env.development.local ga nusxaladik:
{ VITE_API_URL: '/api/mashq', VITE_SINOV: 'bor' }.local fayl o'qildi. git status --ignored uni !! .env.development.local deb ko'rsatadi — !! "e'tiborsiz qoldirilgan" degani. Ya'ni Malika cp .env.example .env.development.local qilib, qiymatlarni o'zgartiradi va bu fayl hech qachon commitga tushmaydi.
Diqqat:
.env.exampleni git'ga qo'shgandan keyin unga haqiqiy kalit yozib qo'ysangiz, u tarixda abadiy qoladi — keyin o'chirish ham yordam bermaydi (Git ichkaridan). Kalitni bekor qilib, yangisini oling.
Tekshirib ko'ring: Nega
vazifalarda.env.productiongit'da,.env.exampleesa baribir kerak?
Javob
.env.production va .env.development — loyihaning umumiy qiymatlari, ular sir emas va hammaga bir xil. .env.example esa shaxsiy .local faylning namunasi: qaysi o'zgaruvchini o'zgartirsa bo'lishini va nimaga e'tibor berishni tushuntiradi. Ko'p loyihalarda umumiy env fayllar umuman yo'q — u yerda .env.example yagona hujjat bo'ladi.
5. .gitattributes — CRLF tuzog'i
5.1 Tuzoqni takrorlaymiz
.gitattributes va qator oxirlari darsida CRLF va LF farqini o'rgangansiz. Endi uning vazifalar dagi oqibatini ko'ramiz. Bu kompyuterdagi Git sozlamasi:
git config --show-origin --get-all core.autocrlffile:D:/Dasturlash/Install/Git/etc/gitconfig truetrue — Git for Windows o'rnatuvchisining sukuti, tizim faylida. vazifalar ni shu kompyuterda klon qildik:
git ls-files --eol src/holat.tsChiqishda uch ustun bor — har birining ma'nosini pastda ochamiz:
i/lf w/crlf attr/ src/holat.tsUch ustun: i/lf — repoda (index) LF, w/crlf — ishchi papkada CRLF, attr/ — .gitattributes qoidasi yo'q. Git checkout paytida har qator oxiriga \r qo'shdi. Prettier esa LF kutadi (endOfLine: "lf" — Prettier 2.0 dan beri sukut):
npx prettier --check .[warn] tsconfig.json
[warn] tsconfig.node.json
[warn] vite.config.ts
[warn] Code style issues found in 55 files. Run Prettier with --write to fix.Malika'ning muammosi shu. CI esa buni ko'rmaydi: GitHub Actions'dagi Ubuntu'da core.autocrlf yo'q. "Menda yiqiladi, CI'da o'tadi" — klassik holat.
5.2 Vazifalar qadami: .gitattributes
# Qator oxiri — hamma joyda LF (16/#44). Windows'dagi Git sukut bo'yicha
# (core.autocrlf=true) faylni CRLF bilan ochadi: Prettier "Code style
# issues found in 22 files" deydi, diff'lar har qatorda o'zgargandek ko'rinadi
* text=auto eol=lf
# Rasm — matn emas: qator oxiriga tegilmaydi
*.png binary| Qator | Ma'nosi |
|---|---|
* text=auto eol=lf |
matn fayllarni Git o'zi aniqlaydi va ishchi papkada ham LF qoldiradi |
*.png binary |
PNG — ikkilik fayl: qator oxiri o'zgartirilmaydi, diff ko'rsatilmaydi |
.gitattributes core.autocrlf dan ustun: u repoda turadi va har kompyuterda bir xil ishlaydi. Commit qilib, ishchi papkani qayta yozdik (.gitattributes darsidagi usul — git rm --cached -r . va git reset --hard):
i/lf w/lf attr/text=auto eol=lf src/holat.ts
i/-text w/-text attr/-text public/assets/ikonlar/ikon-192.pngEndi ishchi papkada ham LF, attr/ ustunida qoida ko'rinadi. PNG — -text, ya'ni "matn emas". Va:
Checking formatting...
All matched files use Prettier code style!Fayl izohidagi "22 files" — izoh yozilgan paytdagi son (bizning nusxada 55 — fayllar soni o'sgan). Diff shovqinidan tashqari yana bir sabab — skriptlar: biz CRLF li commit-msg ni Windows'da sinadik — u ishladi. Lekin Linux va macOS'da \r li skript qatorlari xato berishi mumkin, shuning uchun hamma joyda LF — eng xavfsiz.
Tekshirib ko'ring: Malika
.gitattributesni pull qildi, lekinnpx prettier --check .hali ham 55 ta fayl deydi. Nega?
Javob
.gitattributes faqat keyingi checkout'da ta'sir qiladi — mavjud ishchi papkadagi fayllar o'zi o'zgarmaydi. Malika fayllarni qayta yozdirishi kerak: o'zgarishlari commit qilingan bo'lsa, git rm --cached -r . va git reset --hard. Yoki eng sodda yo'l — reponi qayta klon qilish.
6. LICENSE — huquqiy pasport
6.1 Nega vazifalar ga kerak
GitHub asoslari darsida portfolio repoga MIT litsenziyasini qo'shgansiz. vazifalar ochiq repo (GitHub Pages), lekin hozircha unda litsenziya yo'q. Litsenziyasiz kod — "hamma huquqlar himoyalangan": boshqalar uni ko'rishi mumkin, lekin nusxalash va o'zgartirish huquqi yo'q. Malika vazifalar dagi prefiks-daraxti.ts ni o'z loyihasiga olsa — rasman ruxsatsiz.
6.2 Vazifalar qadami: MIT
Ildizda LICENSE:
MIT License
Copyright (c) 2026 Ism Familiya
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
…Ism Familiya o'rniga — o'z ismingiz. Muallif — siz; GitHub login emas, haqiqiy ism (yoki taxallus, agar loyihalaringizni shu nom bilan imzolasangiz). Matnning qolgan qismi — MIT'ning standart matni, bir harf ham o'zgartirilmaydi: choosealicense.com yoki GitHub'dagi "Add file → Create new file → LICENSE → Choose a license template" dan ko'chiring.
package.json dagi yorliq (package.json pasporti):
npm pkg set license=MITIkkalasi bir-biriga mos: fayl — to'liq matn, license maydoni — SPDX identifikatori. GitHub repo sahifasida endi "MIT license" belgisi chiqadi.
Maslahat: Litsenziya tanlash huquqiy qaror. O'quv loyihasi uchun MIT — eng keng tarqalgan va sodda tanlov. Ishxonada esa bu qarorni kompaniya qiladi — o'zingiz litsenziya qo'shmang.
Commit: chore: .gitattributes (eol=lf), LICENSE (MIT), .env.example.
7. .dockerignore — o'qish darajasida
Docker — dasturni barcha kerakli narsalari bilan bitta "obraz"ga (image) qadoqlaydigan vosita; serverga shu obraz ko'chiriladi. 33-qismda o'rganamiz, hozir bilish shart emas. Obraz yasashda Docker papkadagi fayllarni oladi. Qaysilari olinmasligini .dockerignore aytadi — sintaksisi .gitignore bilan bir xil.
Vite loyihasi uchun odatiy .dockerignore:
# Obraz ichida npm ci qayta o'rnatadi — kompyuterdagisi kerak emas
node_modules
# Obraz ichida npm run build qayta yig'adi
dist
# Sirlar obrazga TUSHMASIN
.env*.local
# Git tarixi — katta va keraksiz
.gitNega muhim:
- Tezlik.
node_modulesyuzlab megabayt — u Docker'ga har safar ko'chirilmaydi. - Xavfsizlik.
.env.development.localdagi kalit obrazga tushsa, obrazni olgan har kim uni o'qiy oladi..gitignorebu yerda yordam bermaydi: Docker uni o'qimaydi.
vazifalar — statik sayt, GitHub Pages'da turadi, Docker ishlatmaydi. Shuning uchun unda .dockerignore yo'q. Bu fayl bilan 33-qismda o'z backend'ingizni qadoqlaganda ishlaysiz.
8. Yana uchraydigan ildiz fayllar
Begona repolarda ildizda boshqa fayllarni ham ko'rasiz. Ularning ko'pini allaqachon bilasiz — bu yerda qisqa eslatma va "qaysi savolga javob beradi" jadvali:
| Fayl | Qaysi savolga javob | Qayerda o'rgangansiz |
|---|---|---|
README.md |
"Bu nima va qanday ishga tushiriladi?" | GitHub asoslari |
CONTRIBUTING.md |
"Qanday hissa qo'shaman: branch, commit, PR qoidalari?" | Fork va upstream |
CODEOWNERS (.github/ da) |
"Bu faylni kim sharhlaydi?" | Code review |
.editorconfig |
"Tab yoki bo'sh joy, qator oxiri — har muharrirda bir xil" | VS Code sozlamalari |
AGENTS.md |
"AI yordamchi loyihada nimaga amal qilsin?" | AI bilan ishlash |
SECURITY.md |
"Zaiflik topsam, kimga va qanday xabar beraman?" | 35-qism |
vazifalar dagi AGENTS.md ham ildiz faylining yaxshi namunasi: unda buyruqlar (npm run check), Vite qoidalari va commit kelishuvi yozilgan. Yangi dasturchi ham, AI yordamchi ham birinchi navbatda shu faylni o'qiydi. Har yangi asbob qo'shilganda (bu qismda — Vite, commitlint, husky) u yangilanadi — aks holda hujjat koddan orqada qoladi va noto'g'ri yo'l ko'rsatadi.
Bir umumiy qoida: ildizda fayl qancha ko'p bo'lsa, har biri shuncha qisqa va aniq bo'lishi kerak. Ikki fayl bir xil narsani turlicha aytsa (masalan, README'da "Node 22", .nvmrc da "24") — qaysi biri to'g'ri ekanini hech kim bilmaydi. Shuning uchun vazifalar da Node versiyasi .nvmrc da, CI uni o'zi o'qiydi (node-version-file). README'dagi "Node 24" yozuvi esa qo'lda yangilanadi — bunday takrorlarni ham kuzatib boring.
Tekshirib ko'ring: Malika
.editorconfigdaend_of_line = lfborligini ko'rdi va ".gitattributeskerak emas" dedi. To'g'rimi?
Javob
Yo'q. .editorconfig faqat muharrirga aytadi: yangi qator yozganda LF qo'y. Git esa checkout paytida faylni o'zi qayta yozadi — core.autocrlf=true bo'lsa, CRLF bilan. Muharrir bu jarayonda ishtirok etmaydi. Git'ning xulqini faqat .gitattributes boshqaradi. Ikkalasi birga ishlaydi: biri yozishda, ikkinchisi Git'da.
9. Ko'p uchraydigan xatolar
| Belgi | Sabab | Davosi |
|---|---|---|
Windows'da Code style issues found in 55 files |
core.autocrlf=true, .gitattributes yo'q |
* text=auto eol=lf |
.env.example dagi qiymat ishlamayapti |
Vite bu faylni o'qimaydi | .env.development.local ga nusxalang |
| sir git tarixida | .env.example ga haqiqiy kalit yozildi |
kalitni bekor qiling, yangisini oling |
| GitHub "No license" | LICENSE fayli yo'q |
MIT yoki boshqa SPDX litsenziya |
Yana biri: LICENSE va package.json dagi license bir-biriga zid (MIT va ISC). Litsenziya tekshiruvchilar bunday loyihani shubhali deb belgilaydi.
10. Mashqlar
1-mashq (oson): qaysi fayl?
Har muammoga ildizdagi faylni toping.
- Yangi dasturchi Node 20 bilan ishlayapti va g'alati xato oladi —
- Windows'da Prettier hamma faylni "noto'g'ri" deydi —
- "Bu kodni o'z loyihamga olsam bo'ladimi?" —
- "Qaysi muhit o'zgaruvchilari kerak?" —
Yechim
.nvmrc — versiyani o'rnatishga yordam beradi (nvm use), lekin majburlamaydi; majburlash — engines + engine-strict (Ta'minot zanjiri). Qolganlari — darsdagi bo'limlar bo'yicha.
2-mashq (o'rta): CRLF ni o'z ko'zingiz bilan
kurs/mashqlar/16/44-ildiz-fayllar/ da alohida repo:
git init,git config core.autocrlf true(faqat shu repo uchun — Windows'dagidek),npm init -y,npm pkg set type=module,npm i -D -E prettier@3.9.9,.gitignore(node_modules/).menyu.js(narxlar obyekti, Prettier uslubida) — commit.menyu.jsni o'chirib,git checkout -- menyu.js.git ls-files --eol menyu.jsvanpx prettier --check menyu.jsnima deydi?.gitattributesqo'shib commit qiling,git rm -q --cached -r .vagit reset -q --hard. 3-qadamdagi ikki buyruqni takrorlang.
Yechim
3-qadam:
i/lf w/crlf attr/ menyu.js
Checking formatting...
[warn] menyu.js
[warn] Code style issues found in the above file. Run Prettier with --write to fix.4-qadam:
i/lf w/lf attr/text=auto eol=lf menyu.js
Checking formatting...
All matched files use Prettier code style!Repodagi fayl (i/lf) hech qachon o'zgarmadi — faqat ishchi nusxa. core.autocrlf true ni faqat shu repoga qo'ydik (--global siz), boshqa loyihalaringizga tegmaydi.
3-mashq (o'rta): .env.example yozing
«Bahor» yangi loyihasida vite.config.ts va kod uchta o'zgaruvchi o'qiydi: VITE_API_URL (brauzer, API manzili), VITE_TELEGRAM_KANAL (brauzer, kanal havolasi) va TELEGRAM_BOT_TOKEN (faqat build skripti, sir). .env.example yozing.
Yechim
# Namuna — Vite bu faylni o'qimaydi. Nusxa: .env.development.local
# (git'ga kirmaydi) va qiymatlarni o'zingiznikiga almashtiring.
# Brauzer kodi uchun API manzili (import.meta.env.VITE_API_URL)
VITE_API_URL=https://example.com/api
# Sahifadagi "Kanalimiz" havolasi
VITE_TELEGRAM_KANAL=https://t.me/sizning_kanal
# SIR: faqat build skripti o'qiydi. VITE_ bilan BOSHLANMASIN —
# aks holda saytga yozilib, hammaga ko'rinadi. Qiymat — bo'sh.
TELEGRAM_BOT_TOKEN=Muhimi uchinchi o'zgaruvchi: nomida VITE_ yo'q (Vite III — faqat VITE_ lilar brauzer kodiga yoziladi) va qiymati bo'sh. Havolalar — example.com va t.me/sizning_kanal namunalari.
4-mashq (qiyin): Vazifalar qadami
kurs/vazifalar da branch chore/ildiz-fayllar: .gitattributes, LICENSE (o'z ismingiz bilan), .env.example (darsdagidek), npm pkg set license=MIT. Keyin:
git ls-files --eol | grep crlf—w/crlfli fayllar bormi?npm run check— toza bo'lsin.- Commit va PR. GitHub'da repo sahifasining o'ng tomonida nima o'zgardi?
Yechim
- Windows'da
autocrlf=truebo'lsa,.gitattributescommit qilingandan keyin ham eski fayllar CRLF qoladi —git rm --cached -r .vagit reset --hardbilan qayta yozing; keyingrep crlfhech narsa chiqarmaydi. Linux/macOS'da birinchi buyruq ham bo'sh. All matched files use Prettier code style!, lint, tip, 146 test — toza.- About blokida "MIT license" belgisi paydo bo'ladi. Diff: 4 fayl (
.gitattributes,LICENSE,.env.example,package.json).
11. Real ishda
- Yangi loyihaga kirganda ildiz fayllar — birinchi o'qiladigan joy:
.nvmrc(Node), lock-fayl (paket menejeri),.env.example(qanday sozlash) — bu haqda keyingi darslarda chuqurroq. - "Menda ishlaydi" muammolarining katta qismi — CRLF, Node versiyasi yoki unutilgan env o'zgaruvchi. Uchalasi ham ildizdagi bitta faylda hal bo'ladi.
- Ochiq kod —
LICENSEsiz loyihaga jiddiy kompaniya bog'liqlik qo'shmaydi: huquqiy xavf. - Intervyu: "
.env.examplenima uchun?", "CRLF muammosini qanday hal qilasiz?", ".dockerignoreva.gitignorefarqi?".
Xulosa
- Ildiz fayllar guruhlari: paket, Git, asboblar, muhit, odamlar uchun — har biri bitta xatoning oldini oladi.
.nvmrc— qaysi Node o'rnatilsin;engines— qaysilarida ishlaydi..env.example— hamma o'zgaruvchi, izoh, sirsiz qiymat; Vite uni o'qimaydi —.env.*.localga nusxalanadi..gitattributes(* text=auto eol=lf) — Windows'dagiautocrlfdan ustun; usiz bizda 55 fayl Prettier'dan yiqildi.LICENSE(MIT, o'z ismingiz) +"license": "MIT";.dockerignore— obrazganode_modules,.gitva sirlar tushmasin (33-qism).
Keyingi dars: Platforma va kutubxona config fayllari — vercel.json, netlify.toml, renovate.json, dependabot.yml va boshqalar; JSON, JSONC, YAML va TOML formatlarini tanib, xatosiz tahrirlash.
Manbalar
- Git: gitattributes, git ls-files --eol
- Vite: Env Variables and Modes — .env Files
- choosealicense.com, SPDX License List
- Docker: .dockerignore file
- Prettier: endOfLine
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!