Pređi na sadržaj

npm (софтвер)

S Vikipedije, slobodne enciklopedije

Npm
Originalni autor(i)Ajzek Šluter
Programer(i)Rebeka Tarner, Ket Marčan i drugi
Prvo izdanje12. januar 2010.; pre 14 godina (2010-01-12)[1]
Stabilno izdanje
5.4.0 / 23. avgust 2017.; pre 6 godina (2017-08-23)[2]
Repozitorijum Uredi na Vikipodacima
Napisan uJavaSkript
LicencaUmetnička licenca 2.0
Veb-sajtwww.npmjs.com

npm (engl. Node Package Manager) je menadžer paketa za JavaSkript programski jezik. On je takođe podrazumevani menadžer paketa za JavaSkript radno okruženje Node.js. Sastoji se od konzole, koja se još naziva npm i onlajn baze podataka javnih i plaćenih privatnih paketa, koji se nazivaju npm registri. Ovim registrima se pristupa preko klijentske konzole, dok se dostupni paketi mogu pretraživati na npm vebsajtu. Menadžerom paketa i registrima upravlja kompanija npm (engl. npm, Inc.)

Istorijat[uredi | uredi izvor]

npm je u potpunosti napisan u JavaSkriptu i razvio ga je Ajzek Šluter zbog toga što je smatrao da se moduliranje paketa do tad "grozno" obavljalo i pronalazeći nedostatke u sličnim projektima kao što su PEAR (PHP) i CPAN (Perl).

Opis[uredi | uredi izvor]

npm je sadržan i preporučen u Node.js instalacionom programu.[3] npm se sastoji od klijentske konzole koja se koristi za interakciju sa udaljenim registrima. Konzola omogućava korisnicima korišćenje i distribuciju JavaSkript modula koji su dostupni u registru.[4] Paketi su u registru u CommonJS formatu i sadrže datoteku sa metapodacima u JSON formatu.[5] Preko 477.000 paketa je trenutno dostupno u glavnom npm registru.[6] Registar ne poseduje mehanizam za proveru unosa, što znači da dostupni paketi mogu biti lošeg kvaliteta, nesigurni i maliciozni.[5] Umesto toga, npm se oslanja na prijave korisnika na osnovu kojih uklanjaju pakete koji krše politiku registra time što su nesigurni, maliciozni ili slabog kvaliteta.[7] npm nudi statistiku koja sadrži broj preuzimanja kao i broj zavisnih paketa kako bi pomogao programerima da ocene kvalitet paketa.[8]

U martu 2016. godine, npm je došao u žižu medijske pažnje[9] nakon što je paket pod nazivom left-pad, od koga je zavisio veliki broj popularnih JavaSkript paketa, povučen iz registra kao rezultat rasprave.[10] Iako je paket ponovo objavljen nakon 3 sata[11] učinjena je velika šteta, što je dovelo do toga da npm promeni svoju politiku koja se tiče povlačenja paketa kako bi predupredio slične događaje u budućnosti.[12]

Korišćenje[uredi | uredi izvor]

npm može da upravlja paketima koji su lokalne zavisnosti na određenom projektu, kao i globalno instaliranih JavaSkript alata.[13] Kada se koristi kao menadžer zavisnosti na lokalnom projektu, npm može da instalira, pomoću samo jedne komande, sve zavisnosti projekta pomoću package.json fajla.[14] U ovom fajlu svaka zavisnost može da specificira niz validnih verzija koristeći semantički verzionisanu šemu, koja omogućava programerima da automatski ažuriraju svoje pakete a da pritom izbegnu nepoželjne promene koje dovode pucanja koda.[15] npm takođe nudi alate za verzionisanje koji omogućavaju programerima da označe svoje pakete određenom oznakom verzije.[16]

Alternative[uredi | uredi izvor]

Postoji nekoliko alternativa npm-u otvorenog koda za instaliranje modularnog JavaSkript koda, kao što su ied, pnpm, npm-install, npmd, i Yarn, od kojih ovaj poslednji razvijen od strane Fejsbuka i predstavljen u oktobru 2016. godine.[17] Svi su oni kompatibilni sa javnim npm registrom koga podrazumevano koriste, ali korisnicima nude drugačije iskustvo sa klijentskom konzolom, koje se obično ogleda u poboljšanju performansi i determinističkim algoritmima u odnosu na druge npm klijente.[18]

Reference[uredi | uredi izvor]

  1. ^ „Prve verzije npm-a”. GitHab. Pristupljeno 27. 7. 2016. 
  2. ^ „npm/CHANGELOG.md”. GitHab. 23. 8. 2017. Pristupljeno 23. 8. 2017. [mrtva veza]
  3. ^ Dirks, Piter (30. 3. 2016). „npm vodič za početnike — Node Package Manager”. sitepoint. Pristupljeno 22. 7. 2016. 
  4. ^ Ampersand.js. „Ampersand.js - Naučite”. ampersandjs.com. Pristupljeno 22. 7. 2016. 
  5. ^ a b Ojama, Andres; Duna, Karl (2012). „Procena sigurnosti Node.js platforme”. IEEE Xplore. Pristupljeno 22. 7. 2016. 
  6. ^ Kenedi, Hju; DeVaj, Paul. „Razumevanje npm-a”. Nsight. Arhivirano iz originala 8. 07. 2016. g. Pristupljeno 22. 7. 2016. 
  7. ^ „npm Kodeks ponašanja: prihvatljiv sadržaj paketa”. Pristupljeno 9. 5. 2017. 
  8. ^ npm-stat: download statistics for NPM packages
  9. ^ Jegulalp, Serdar (23. 3. 2016). „Kako je jedan povučeni JavaSkript paket izazvao haos?”. InfoWorld. Pristupljeno 22. 7. 2016. 
  10. ^ Vilijams, Kris. „Kako je jedan programer upravo zaustavio Node, Babel i na hiljade projekata sa 11 linija JavaSkript koda”. The Register. Pristupljeno 17. 4. 2016. 
  11. ^ „Kik, left-pad, i npm”. Pristupljeno 9. 5. 2017. 
  12. ^ „Promene u politici povlačenja paketa”. Pristupljeno 9. 5. 2017. 
  13. ^ Elingvud, Džastin. „Kako se koristi npm sa Node.js paketima na Linuks Serveru”. DigitalOcean. Pristupljeno 22. 10. 2016. 
  14. ^ „npm-install”. docs.npmjs. Pristupljeno 22. 10. 2016. 
  15. ^ „semver”. docs.npmjs. Arhivirano iz originala 03. 12. 2016. g. Pristupljeno 22. 10. 2016. 
  16. ^ „npm-version”. docs.npm. Pristupljeno 29. 10. 2016. 
  17. ^ „Zdravo, Yarn!”. npm Blog. 11. 10. 2016. Pristupljeno 17. 12. 2016. 
  18. ^ Kac, Jehuda (11. 10. 2016). „Zašto radim na Yarn'u”. Pristupljeno 17. 12. 2016. 

Spoljašnje veze[uredi | uredi izvor]