npm va package.json

Node.js darsida muhit o’rnatildi. Endi savol: serverni noldan o’zingiz yozasizmi? Yo’q — dasturchilar tayyor kutubxonalardan foydalanadi. npm o’sha kutubxonalarni loyihangizga olib keladi, package.json esa qaysi biri kerakligini yozib qo’yadi.

npm nima

Node.js o’rnatilganda npm ham birga keladi — alohida yuklash shart emas.

Tekshirib ko’ring:

npm --version
10.9.0

Loyihani boshlash: npm init

Yangi papka yarating va ichiga kiring:

mkdir my-server
cd my-server

Endi loyihani ishga tushiramiz:

npm init -y

-y — “hamma savolga ha” degani: npm savol bermay standart javoblar bilan fayl yaratadi. Natijada papkada package.json paydo bo’ladi:

{
  "name": "my-server",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

-y siz npm init yozsangiz, npm har maydonni navbat bilan so’raydi. Boshlash uchun -y qulayroq: keyin faylni qo’lda tahrirlaysiz.

Paket o’rnatish

Sinov uchun kichik paket o’rnatamiz:

npm install dayjs
added 1 package, and audited 2 packages in 2s
found 0 vulnerabilities

Uch narsa o’zgaradi:

  1. node_modules/ papkasi yaratiladi — paket kodi shu yerda;
  2. package.json ga dependencies bo’limi qo’shiladi;
  3. package-lock.json fayli paydo bo’ladi.

package.json endi shunday ko’rinadi:

{
  "name": "my-server",
  "version": "1.0.0",
  "main": "index.js",
  "dependencies": {
    "dayjs": "^1.11.13"
  }
}

Paketni ishlatib ko’ramiz. index.js faylini yarating:

const dayjs = require("dayjs");

// Bugungi sanani kerakli formatda chiqaramiz
const today = dayjs().format("DD.MM.YYYY");
console.log("Bugun:", today);

Ishga tushirish:

node index.js
Bugun: 16.09.2026

O’zingiz yozmagan kod loyihangizda ishladi — npm’ning butun mohiyati shu.

dependencies va devDependencies

Hamma paket ham serverda kerak emas. Ba’zilari faqat kod yozish paytida ishlatiladi.

npm install express              # dependencies ga tushadi
npm install --save-dev nodemon   # devDependencies ga tushadi

--save-dev o’rniga qisqa -D ham yozish mumkin.

{
  "dependencies": {
    "express": "^4.21.2"
  },
  "devDependencies": {
    "nodemon": "^3.1.9"
  }
}
Bo’lim Qachon kerak Misol
dependencies Dastur ishlashi uchun express, dayjs
devDependencies Faqat yozish paytida nodemon, testlar

Farqni tekshirish usuli oddiy savol: “bu paket serverda, foydalanuvchi so’rov yuborganda kerakmi?” Ha bo’lsa — dependencies.

Versiya belgilari

^4.21.2 dagi ^ belgisi nimani anglatadi?

Versiya uch qismdan iborat: KATTA.O'RTA.KICHIK.

Yozuv Ruxsat etadi Ma’nosi
^4.21.2 4.21.2 dan 5.0.0 gacha Mos yangilanishlar
~4.21.2 4.21.2 dan 4.22.0 gacha Faqat xato tuzatishlari
4.21.2 Faqat 4.21.2 Aynan shu versiya

^ — standart tanlov: xavfsiz yangilanishlarni oladi, kodni buzadigan katta o’zgarishni olmaydi.

node_modules va .gitignore

node_modules/ ichiga qarang — o’rnatgan paketingiz bitta bo’lsa ham, u yerda o’nlab papka bo’lishi mumkin. Sabab: har paket o’z paketlariga tayanadi.

Bu papka juda katta bo’lib ketadi. Shuning uchun u git’ga qo’shilmaydi. Loyiha papkasida .gitignore fayli yarating:

node_modules/
.env

package-lock.json nima uchun kerak

package.json da ^4.21.2 yozilgan — demak 4.22.0 ham, 4.25.1 ham mos keladi. Bugun o’rnatsangiz bir versiya, olti oydan keyin boshqa versiya tushadi.

Bu muammo tug’diradi: sizda ishlagan kod hamkasbingizda ishlamasligi mumkin. package-lock.json shu muammoni yechadi — unda har paketning aniq versiyasi qayd etiladi.

Fayl Nimani saqlaydi Git’ga qo’shiladimi
package.json Qaysi paket kerak (oraliq bilan) Ha
package-lock.json Aynan qaysi versiya o’rnatilgan Ha
node_modules/ Paket kodining o’zi Yo’q

scripts — o’z buyruqlaringiz

Uzun buyruqlarni har safar yozmaslik uchun scripts bo’limiga qisqartma qo’yiladi:

{
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  }
}

Ishga tushirish:

npm start
npm run dev
Bugun: 16.09.2026

start va test maxsus nomlar — ular run so’zisiz ishlaydi. Qolgan hamma nom npm run <nom> shaklida chaqiriladi.

require va import

Yuqorida require yozdik, modullar darsida esa import ishlatgan edingiz. Ikkalasi ham modulni olib kiradi, lekin ular ikki xil tizim.

CommonJS — Node.js’ning eski, keng tarqalgan tizimi:

// math.js
function add(a, b) {
  return a + b;
}

module.exports = { add };
// index.js
const { add } = require("./math");

console.log(add(2, 3));
5

ES modul — brauzerda ham ishlatiladigan zamonaviy tizim:

// math.js
export function add(a, b) {
  return a + b;
}
// index.js
import { add } from "./math.js";

console.log(add(2, 3));

ES modulni Node.js’da ishlatish uchun package.json ga bitta qator qo’shiladi:

{
  "type": "module"
}
Jihat CommonJS ES modul
Olib kirish require() import
Chiqarish module.exports export
Sozlash Standart "type": "module"
Fayl kengaytmasi Ixtiyoriy Majburiy (./math.js)

Bu bo’limda CommonJS (require) ishlatamiz: Express hujjatlari va internetdagi misollarning ko’pchiligi shu ko’rinishda yozilgan.

Paketni o’chirish va tekshirish

npm uninstall dayjs      # paketni olib tashlash
npm list --depth=0       # o'rnatilgan paketlar ro'yxati
npm outdated             # eskirgan paketlar

Amaliy mashq

O’z kompyuteringizda bajaring:

  1. my-server papkasini yaratib, ichida npm init -y buyrug’ini bering;
  2. package.json ni oching va name hamda main maydonlarini o’qing;
  3. npm install dayjs bilan paket o’rnatib, index.js da sanani chiqaring;
  4. npm install --save-dev nodemon bering va package.json da paket qaysi bo’limga tushganini tekshiring;
  5. scripts ga "start": "node index.js" qo’shib, npm start bilan ishga tushiring;
  6. .gitignore yaratib, ichiga node_modules/ yozing.

4-qadam eng muhimi: dependencies va devDependencies farqini o’z ko’zingiz bilan ko’rasiz.

Qisqacha xulosa

  • npm — Node.js bilan birga keladigan paket menejeri.
  • npm init -y loyiha pasporti — package.json ni yaratadi.
  • npm install <nom> paketni o’rnatadi, -D bilan devDependencies ga qo’yadi.
  • node_modules/ git’ga qo’shilmaydi, package-lock.json — qo’shiladi.
  • package-lock.json aniq versiyani qayd etadi: hammada bir xil kod ishlaydi.
  • scripts uzun buyruqlarga qisqa nom beradi: npm start, npm run dev.
  • CommonJS require ishlatadi, ES modul import — bir loyihada bittasi tanlanadi.

Keyingi darsda modul tizimi — kodni bir nechta faylga bo’lish va module.exports ning shakllari.

Bu dars foydali bo'ldimi?

marta ko'rildi