Šta je to Node Package Manager ili npm?

Nakon što smo objasnili šta je to node, trebalo bi da se osvrnemo na još jednu izvanredno korisnu stvar koju smo dobili uz samu instalaciju noda. U pitanju je upravljač nodovih paketa ili node package manager, skraćeno npm. Ovo je jedna od najkorišćenijih alatki u svetu savremenog programiranja pa vredi posvetiti malo vremena njoj kako bi se tačno upoznali sa softverom koji umnogome olakšava život miliona programera širom sveta.

 

Šta je to npm?

Prilikom instaliranja Node.js-a, zajedno sa smim nodom, instalirali smo i npm. Svaki program koji se napravi u nodu, kao što je bio onaj koga smo prikazivali prilikom instaliranja, može da funkcioniše ili kao samostalni program, kakav je bio naš, ili da bude napravljen tako da mogu i drugi ljudi da ga iskoriste unutar sopstvenih programa kako bi obavili posao koga radi naš program.

Na primer, ukoliko pravim program koji treba da kontroliše u koliko sati će se moja veš mašina uključiti i pokrenuti program za pranje šarenog veša, a ja se nalazim u drugoj vremenskoj zoni, na primer sat vremena iza moje veš mašine, neophodno je da tu razliku u vremenskim zonama na neki način poništim kako ne bih zadao zbunjujuću komandu mojoj mašini da počne pre sat vremena da pere šareni veš.  Ja u tom slučaju mogu da napišem sam svoje programske funkcije koje će tražiti vremensku razliku u vremenskom potpisu komande koju zadajem veš mašini ili mogu pogledati da li je neko već napravio sličnu funkcionalnost. Traženje sličnih funkcionalnosti koje mogu da upotrebim unutar svog programa se vrši na npm zvaničnom sajtu. Ukoliko pronadjem nešto takvo, ja ću takav program preko npm komande instalirati unutar svog programa i upotrebiti njegove funkcionalnosti za potrebe mog programa.

 

Dakle, takvi mali programi, koji se drugačije nazivaju paketi, te otud i ime menadžer node paketa, u mnogome pomažu da se proces razvoja programa ubrza jer skraćuje vreme za razvoj sopstvenih funkcionalnosti. Svaki takav paket koga ubacimo u naš program se smatra paketom od koga zavisi izvršavanje našeg programa. Na engleskom se to naziva dependency. Postoje dependacy od kojih zavisi normalno funkcionisanje našeg programa, kao i oni koji nam pomažu prilikom pisanja programa, ali bez kojih naš program može neometano da funkcioniše. Takvi razvojni ovisnički paketi se nazivaju na engleskom development ili dev dependency. Za upravljanje statusom običnih i dev dependency paketa unutar našeg programa zaslužan je fajl koji se uvek nalazi na samom vrhu naše folderske strukture u programu koji nosi ime package.json. Ovaj fajl obično izgleda ovako:

 

{
"name" : "vešmašinovođa",
"version" : "0.0.1",
"description" : "program za uključivanje veš mašine",
"main" : "index.js",
"keywords" : ["veš", "mašina"],
"author" : "Edutech škola programiranja",
"licence" : "ISC",
"dependencies": {
"axios": "^0.18.0",
}
}

 

Kada završimo sa pisanjem našeg programa za veš mašinu, možemo da objavimo naš program na npm sajtu kako bi ga i drugi ljudi upotrebljavali i kako bi doprineli razvoju otvorenog softvera na npm platformi koja već sada ima više od milion otvorenih i slobodnih za upotrebu programa, što ga čini najvećim repozitorijumom programa u istoriji čovečanstva.