2-bo‘lim

O'rnatish va birinchi loyiha

Node ni o'rnatish, LTS versiyalar, REPL, package.json yaratish, npm skriptlari, --watch va --env-file bayroqlari.

🕑 13 daqiqa o‘qish 📄 757 so‘z 👁 0 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. O'rnatish
  2. Tekshirish
  3. REPL
  4. Loyiha yaratish
  5. type: module
  6. Dasturni ishga tushirish
  7. npm skriptlari
  8. --watch bayrog'i
  9. Muhit o'zgaruvchilari
  10. .env fayli
  11. node_modules
  12. Loyiha tuzilishi
  13. Buyruq qatori argumentlari
  14. Xulosa

Node ni o'rnatish oson, lekin bir nechta yo'l bor va ularning farqini bilish kerak.

O'rnatish #

UsulKimga
nodejs.org dan o'rnatuvchiBoshlovchilar
nvm yoki fnmBir nechta versiya kerak bo'lsa
brew, apt, wingetTizim paket menejerini afzal ko'rsangiz

Boshlash uchun rasmiy saytdan LTS versiyasini oling.

LTS nima degani

Node ikki yo'nalishda chiqadi:

  • LTS (Long Term Support) - juft raqamli versiyalar: 20, 22,
    1. Ular uch yilga yaqin qo'llab-quvvatlanadi va xatolari

    tuzatiladi.

  • Current - toq raqamlilar: 21, 23, 25. Ularda eng yangi imkoniyatlar bo'ladi, lekin qo'llab-quvvatlash muddati qisqa.

Ishlab chiqarish uchun har doim LTS. Bu darslikdagi misollar Node 24 da tekshirilgan, lekin deyarli hammasi Node 18 dan boshlab ishlaydi.

Tekshirish #

Terminal
node --version
npm --version

Ikkalasi ham versiya qaytarsa, hammasi joyida. npm Node bilan birga keladi - uni alohida o'rnatish kerak emas.

REPL #

Buyruq qatorida shunchaki node deb yozsangiz, interaktiv muhit ochiladi:

Terminal
node

Unda kod yozib, natijani darhol ko'rish mumkin. Chiqish uchun ikki marta Ctrl+C yoki .exit.

REPL kichik narsani tez sinash uchun qulay, lekin haqiqiy ish fayl bilan qilinadi.

Loyiha yaratish #

Terminal
mkdir mening-loyiham
cd mening-loyiham
npm init -y

npm init -y hamma savolga "ha" deb javob beradi va package.json faylini yaratadi:

JSON
{
  "name": "mening-loyiham",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  }
}

Bu fayl - loyihaning pasporti. Unda nomi, versiyasi, bog'liqliklari va buyruqlari yoziladi.

type: module #

Bu darslikdagi eng muhim sozlama:

JSON
{
  "name": "mening-loyiham",
  "version": "1.0.0",
  "type": "module",
  "main": "index.js"
}

"type": "module" qo'shsangiz, .js fayllarida import yozish mumkin bo'ladi.

Usiz Node .js ni eski uslubda - require bilan o'qiydi. Ikki uslubning farqini keyingi bo'limda to'liq ko'ramiz.

Bu sozlamani unutish - eng ko'p uchraydigan xato

"type": "module" yozmasdan import ishlatsangiz, Node shunday deydi:

Natija
SyntaxError: Cannot use import statement outside a module

Xato matni chalkash, chunki u faylda emas, package.json da. Shu xabarni ko'rsangiz, birinchi bo'lib package.json ni tekshiring.

Yangi loyihada uni darhol qo'shing.

Dasturni ishga tushirish #

Terminal
node index.js
node .

Ikkinchi shakl package.json dagi main maydoniga qaraydi.

JavaScript
const vazifalar = ["o'qish", "yozish", "sinash"];

for (const [i, vazifa] of vazifalar.entries()) {
    console.log(`${i + 1}. ${vazifa}`);
}

console.log("Jami:", vazifalar.length);
Natija
1. o'qish
2. yozish
3. sinash
Jami: 3

npm skriptlari #

package.json ichidagi scripts - loyihaning buyruqlari:

JSON
{
  "type": "module",
  "scripts": {
    "start": "node index.js",
    "dev": "node --watch index.js",
    "test": "node --test"
  }
}

Ularni shunday chaqirasiz:

Terminal
npm start
npm run dev
npm test
npm run qachon kerak

start, test, stop va restart - maxsus nomlar, ularni run siz chaqirish mumkin.

Qolgan hamma nom uchun npm run <nom> yozish kerak: npm run dev, npm run build.

Skriptlar ichida node_modules/.bin avtomatik PATH ga qo'shiladi. Shuning uchun "dev": "vite" deb yozsangiz, u ishlaydi - garchi vite global o'rnatilmagan bo'lsa ham.

--watch bayrog'i #

Terminal
node --watch index.js

Fayl o'zgarganda Node dasturni avtomatik qayta ishga tushiradi.

Ilgari buning uchun nodemon paketi o'rnatilardi. Node 18 dan beri bu imkoniyat tilning o'zida bor va qo'shimcha paket kerak emas.

Muhit o'zgaruvchilari #

Maxfiy ma'lumot - parol, API kalit - hech qachon kodga yozilmaydi. Uning o'rni - muhit o'zgaruvchilari.

JavaScript
const port = process.env.PORT ?? "3000";
const muhit = process.env.NODE_ENV ?? "development";

console.log("Port:", port);
console.log("Muhit:", muhit);
console.log("Ishlab chiqarishdami:", muhit === "production");
Natija
Port: 3000
Muhit: development
Ishlab chiqarishdami: false

?? - nullish operatori: chap tomon undefined yoki null bo'lsa, o'ngdagini beradi.

Qiymatni tashqaridan berish mumkin:

Terminal
PORT=8080 node index.js

.env fayli #

Ko'p o'zgaruvchi bo'lsa, ularni faylga yozish qulay:

INI
PORT=8080
NODE_ENV=development
DB_PAROL=maxfiy

Node 20 dan beri uni o'qish uchun paket kerak emas:

Terminal
node --env-file=.env index.js
.env ni hech qachon git ga qo'shmang

.env faylida parollar va kalitlar bo'ladi. U omborga tushsa, maxfiy ma'lumot butun dunyoga ochiladi - va git tarixidan uni o'chirish juda qiyin.

Shuning uchun .gitignore faylini darhol yarating:

Natija
node_modules/
.env

Jamoadoshlaringiz uchun .env.example faylini qo'shing: unda o'zgaruvchilar nomi bo'ladi, qiymatlari esa bo'sh.

node_modules #

npm install ishlatganingizda, paketlar node_modules papkasiga yuklanadi. U juda katta bo'lishi mumkin - minglab fayl.

FaylGit ga qo'shiladimi
package.jsonHa
package-lock.jsonHa
node_modules/Yo'q
.envYo'q

node_modules ni saqlash shart emas: package.json va package-lock.json bo'lsa, uni istalgan vaqtda qayta yaratish mumkin.

Loyiha tuzilishi #

Oddiy Node loyihasi mening-loyiham/ package.json nomi, skriptlar, bog'liqliklar package-lock.json aniq versiyalar (git ga) index.js dastur shu yerda boshlanadi .env maxfiy - git ga QO'SHILMAYDI node_modules/ katta - git ga QO'SHILMAYDI

Buyruq qatori argumentlari #

JavaScript
const argumentlar = process.argv.slice(2);

console.log("Argumentlar soni:", argumentlar.length);
console.log("Node yo'li bormi:", process.argv[0].includes("node"));

if (argumentlar.length === 0) {
    console.log("Argument berilmadi");
}
Natija
Argumentlar soni: 0
Node yo'li bormi: true
Argument berilmadi

process.argv massivining birinchi ikki elementi doim bir xil: Node ning yo'li va skript yo'li. Shuning uchun slice(2) qilinadi.

Buyruq qatorini jiddiy tahlil qilish kerak bo'lsa, Node da tayyor parseArgs funksiyasi bor - uni 6-bo'limda ko'ramiz.

Amaliy topshiriq
  1. Node ning LTS versiyasini o'rnating.
  2. node --version va npm --version bilan tekshiring.
  3. REPL ni ochib, bir necha ifoda hisoblang.
  4. npm init -y bilan loyiha yarating.
  5. package.json ga "type": "module" qo'shing.
  6. Usiz import yozib, xato matnini ko'ring.
  7. scripts ga start va dev qo'shing.
  8. node --watch bilan faylni o'zgartirib ko'ring.
  9. .gitignore yaratib, node_modules va .env ni qo'shing.
  10. PORT=8080 node index.js bilan muhit o'zgaruvchisini bering.

Xulosa #

  • LTS - juft raqamli versiyalar; ishlab chiqarish uchun doim shular.
  • npm init -y package.json yaratadi - loyihaning pasporti.
  • "type": "module" bo'lmasa, .js da import ishlamaydi.
  • scripts loyiha buyruqlarini saqlaydi; start va test ni run siz chaqirish mumkin.
  • --watch o'zgarishda qayta ishga tushiradi - nodemon kerak emas.
  • Maxfiy ma'lumot muhit o'zgaruvchilarida; --env-file bilan .env o'qiladi.
  • .env va node_modules git ga qo'shilmaydi, package-lock.json esa qo'shiladi.
  • process.argv.slice(2) - haqiqiy argumentlar.

Keyingi bo'limda modullarni o'rganamiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.