Sobes.tech
Junior

რა არის package.json ფაილი Node.js-ში და რა როლი აქვს მას პროექტში?

sobes.tech AI

პასუხი AI-სგან

package.json — ეს არის Node.js პროექტის მანიაფესტი, რომელიც შეიცავს მეტადატებს, რომლებიც აუცილებელია დამოკიდებულებების მართვის, მშენებლობის და პროგრამის გაშვებისათვის.

ძირითადი ველები და მათი როლი:

  1. name: პროექტის სახელი.
  2. version: მიმდინარე ვერსია.
  3. description: მოკლე აღწერა.
  4. keywords: საკვანძო სიტყვების მასივი პროექტის აღწერისთვის.
  5. homepage: პროექტის მთავარი გვერდის URL.
  6. bugs: ობიექტი ბაგების ტრეკერის შესახებ.
  7. license: პროექტის ლიცენზიის ტიპი.
  8. author: ავტორის ინფორმაცია.
  9. contributors: შეტანილთა სია.
  10. files: ფაილების მასივი, რომლებიც შედის პაკეტის გამოქვეყნებაში.
  11. main: შესასვლელი წერტილი პროგრამაში (ძირითადი ფაილი).
  12. browser: შესასვლელი წერტილი კლიენტურ ნაწილში (თუ გამოიყენება).
  13. bin: ბრძანებები, რომლებიც უნდა იყოს ხელმისაწვდომი გლობალურად პაკეტის ინსტალაციისას.
  14. man: man გვერდების გზები.
  15. directories: პროექტის დირექტორიების გზები.
  16. repository: კოდის საცავის ინფორმაცია.
  17. scripts: ობიექტი, რომელიც შეიცავს სკრიპტებს, რომლებიც შეიძლება შესრულდეს npm-ის საშუალებით.
  18. config: ობიექტი, რომელიც შეიცავს კონფიგურაციებს სკრიპტებისთვის.
  19. dependencies: ობიექტი, რომელიც შეიცავს დამოკიდებულებებს, აუცილებელს პროექტის მუშაობისთვის.
  20. devDependencies: ობიექტი, რომელიც შეიცავს დამოკიდებულებებს, საჭიროებს მხოლოდ განვითარების და ტესტირებისათვის.
  21. peerDependencies: დამოკიდებულებები, რომელთაგანაც უნდა იყოს დამოკიდებული პაკეტის მომხმარებელიც.
  22. bundledDependencies: მასივი სახელების დამოკიდებულებების, რომლებიც უნდა იყოს შეფუთული პაკეტთან ერთად.
  23. optionalDependencies: დამოკიდებულებები, რომლებიც შეიძლება იყოს ინსტალირებული, მაგრამ მათი არარსებობა არ გამოიწვევს ინსტალაციის შეცდომას.
  24. engines: ობიექტი, რომელიც მიუთითებს მხარდაჭერილ Node.js და npm ვერსიებზე.
  25. os: ოპერაციული სისტემების მასივი, რომელზეც მუშაობს პროექტი.
  26. cpu: CPU არქიტექტურების მასივი.
  27. preferGlobal: ბულოვანი მნიშვნელობა, რომელიც მიუთითებს, უნდა იყოს გლობალურად ინსტალირებული პაკეტი.
  28. private: ბულოვანი მნიშვნელობა, რომელიც მიუთითებს, არის თუ არა პაკეტი პირადი და არ უნდა გამოქვეყნდეს npm-ზე.
  29. publishConfig: პარამეტრები პაკეტის გამოქვეყნებისთვის npm-ზე.
{
  "name": "my-node-app", // პროექტის სახელი
  "version": "1.0.0", // ვერსია
  "description": "სადამოყვანე Node.js პროგრამა",
  "main": "index.js", // შესასვლელი ფაილი
  "scripts": {
    "start": "node index.js", // დაწყების სკრიპტი
    "test": "echo \"შეცდომა: ტესტი არ არის მითითებული\" && exit 1" // ტესტის სკრიპტი
  },
  "keywords": [
    "node",
    "მაგალითი"
  ],
  "author": "თქვენი სახელი",
  "license": "ISC",
  "dependencies": { // პროდუქციის დამოკიდებულებები
    "express": "^4.18.2"
  },
  "devDependencies": { // განვითარების დამოკიდებულებები
    "nodemon": "^2.0.20"
  }
}

package.json მნიშვნელოვან როლს ასრულებს დამოკიდებულებების მართვაში (ინსტალაცია, განახლება, წაშლა), ავტომატიზაციის სკრიპტების განსაზღვრაში (გაშვება, ტესტირება, მშენებლობა), პროექტის მეტადატების მიწოდებაში npm და სხვა ინსტრუმენტებისთვის, ასევე პროექტის მშენებლობის გამეორებადობის უზრუნველყოფაში.