npm
npm nədir?
npm Node Package Manager deməkdir. Isaac Schlueter onu 2010-cu ildə Node.js ilə birlikdə açıb. Paket başqasının yazdığı hazır koddur. package.json həmin layihənin adını və paket siyahısını saxlayır. npm install o siyahını oxuyur və paketləri node_modules qovluğuna yığır. package-lock.json isə dəqiq versiyanı bağlayır ki, sabah başqa maşında eyni kod gəlsin. Yarn və pnpm oxşar iş görür, amma npm-in özü deyil.
npm nə üçün istifadə olunur?
npm kitabxananı layihəyə əlavə etmək, skripti bir əmrlə işə salmaq və paketi başqasına vermək üçündür.
- React və başqa kitabxananı qurmaq
- Testi npm test ilə açmaq
- Layihəni başqa kompüterdə eyni paketlərlə qurmaq
- Öz paketini reyestrə göndərmək
npm ilə nə etmək olar?
npm ilə paket əlavə edir, köhnəsini silir və package.json-dakı skripti işlədirsən. O, səhifəni özü çəkmir və serveri qurmur. Paketin içindəki kod sənin layihəndə işləyir. Tanımadığın paketi qurmaq onun əmrini də işə sala bilər.
npm öyrənmək çətindirmi?
Bir paket qurmaq asandır. Çətinlik versiya və icazədədir. Paket başqa paketi də gətirir. Onlardan biri köhnəlibsə xəbərdarlıq çıxır, amma layihə hələ işləyə bilər. package-lock faylını atmaq sabah başqa versiya gətirə bilər. Reyestrə açar yazmaq və həmin açarı repoya qoymaq olmaz.
Üstünlükləri və məhdudiyyətləri
Üstünlük: kitabxana təkrar yazılmır, siyahı bir faylda durur, eyni quraşdırma başqa maşında təkrarlanır. Məhdudiyyət: node_modules böyüyür. Hər kiçik iş üçün paket lazım deyil. npm Node.js-in özü deyil.
Əsas anlayışlar
Paketin adı və versiyası var. package.json siyahıdır. node_modules endirilən faylların yeridir.
- dependencies layihənin işləməsi üçündür
- devDependencies yalnız hazırlama üçündür
- scripts əmri qısa ada bağlayır
- lock faylı versiyanı saxlayır
Qısa nümunə
Bu sətir React paketini layihənin siyahısına əlavə edir və faylları endirir. React-i özü yazmır.
npm install react
Tez-tez verilən suallar
- npm və Node.js eynidir? Xeyr. Node.js proqramı işlədir. npm paket gətirir.
- package.json paketin özüdür? Xeyr. O, siyahıdır. Paketin faylı node_modules içindədir.
- Hər paket təhlükəsizdir? Xeyr. Tanımadığın paket öz əmrini işə sala bilər.