package.json fayli


ULASHISH

package.json nima?

package.json - bu Node.js loyihangizni tavsiflovchi maxsus fayl.

Unda ilovangiz haqida uning nomi, versiyasi, bog‘liqliklari, skriptlar va boshqalar kabi ma’lumotlar mavjud.

Bu fayl Node.js loyihalarini boshqarish va ulashish uchun, ayniqsa npm (Node Package Manager) ishlatilganda, juda muhim.


package.json yaratilmoqda

Loyiha papkasida quyidagi buyruqni ishga tushirish orqali package.json faylini yaratishingiz mumkin:

npm init

Bu buyruq sizga loyihangiz haqida bir qator savollar beradi va package.json faylini yaratadi.

Standart qiymatlar bilan tezkor sozlash uchun:

npm init -y


Misol paketi.json

Mana package.json faylining oddiy misoli:

{
  "name": "my-node-app",
  "version": "1.0.0",
  "description": "A simple Node.js app",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "author": "Your Name",
  "license": "ISC"
}

Bu fayl ilovani tavsiflaydi, asosiy faylni index.js ga o‘rnatadi va boshlang‘ich skriptni belgilaydi.


Bog‘liqlarni qo‘shish

Npm bilan paketni o‘rnatganingizda, u package.jsonning dependencies bo‘limiga qo‘shiladi:

npm install express

Bu buyruq loyihangizga Express qo‘shadi va package.json ni avtomatik ravishda yangilaydi.

"dependencies": {
  "express": "^5.1.0"
}

Umumiy paket.json maydonlari

Asosiy metama’lumotlar

{
  "name": "my-package",
  "version": "1.0.0",
  "description": "A brief description of your package",
  "main": "index.js",
  "type": "module", // or "commonjs"
  "keywords": ["example", "package", "node"],
  "author": "Your Name ",
  "license": "MIT",
  "homepage": "https://example.com/my-package"
}

Skriptlar

npm run <script-name> bilan ishlashi mumkin bo‘lgan maxsus skriptlarni belgilang:

"scripts": {
  "start": "node index.js",
  "dev": "nodemon index.js",
  "test": "jest",
  "build": "webpack --mode production",
  "lint": "eslint .",
  "prepare": "husky install"
}

Bog‘liqlar

Versiya diapazonlari bilan loyiha bog‘liqliklarini belgilang:

"dependencies": {
  "express": "^4.18.2",
  "mongoose": "~7.0.0",
  "lodash": "4.17.21"
},

Dev bog‘liqliklari

Faqat ishlab chiqishga bog‘liqliklar (ishlab chiqarishda o‘rnatilmagan):

"devDependencies": {
  "nodemon": "^2.0.22",
  "jest": "^29.5.0",
  "eslint": "^8.38.0"
}

Versiya diapazonlari

  • ^4.17.21 - 4.x.x bilan mos (5.0.0 gacha, lekin uni o‘z ichiga olmaydi)
  • ~4.17.21 - Patch updates only (4.17.x)
  • 4.17.21 - Aniq versiya
  • latest - so‘nggi barqaror versiya
  • git+https://... - Git ombori

Dvigatellar

Node.js va npm versiya talablarini belgilang:

"engines": {
  "node": ">=14.0.0 <17.0.0",
  "npm": ">=6.0.0"
}

Repozitoriy va xatolar

"repository": {
  "type": "git",
  "url": "https://github.com/username/repo.git"
},
"bugs": {
  "url": "https://github.com/username/repo/issues"
}

package.json bilan ishlash

Bog‘liqlarni qo‘shish

# Install and save to dependencies
npm install package-name

# Install and save to devDependencies
npm install --save-dev package-name

# Install exact version
npm install package-name@1.2.3

Bog‘liqlarni yangilash

# Update a specific package
npm update package-name

# Update all packages
npm update

# Check for outdated packages
npm outdated

Ishlayotgan skriptlar

# Run a script
npm run script-name

# Run start script (can be called with just 'npm start')
npm start

# Run test script (can be called with just 'npm test')
npm test

Eng yaxshi amaliyotlar

  • Ishlab chiqarish ilovalari uchun har doim aniq versiyalarni dependencies da belgilang
  • Qayta tiklanadigan tuzilmalar uchun CI/CD payplar (pipes)ida npm ci dan foydalaning
  • package-lock.json faylingizni versiya boshqaruvida saqlang
  • Chop etilgan paketlardan keraksiz fayllarni chiqarib tashlash uchun .npmignore dan foydalaning
  • Xavfsizlik tuzatishlarini olish uchun muntazam ravishda bog‘liqliklarni yangilang

Xulosa

package.json har qanday Node.js loyihasining markazi bo‘lib, metama’lumotlar, skriptlar va bog‘liqlik ma’lumotlarini o‘z ichiga oladi.

Node.js-ni samarali ishlab chiqish uchun uning tuzilishi va maydonlarini tushunish zarur.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!