npm (tarkvara)

Allikas: Vikipeedia
Mine navigeerimisribale Mine otsikasti
npm
Npm-logo.svg
Autor Isaac Z. Schlueter
Esmaväljalase 12. jaanuar 2010
Viimane väljalase 6.14.7 / 21. juuli 2020 Muuda Vikiandmetes
Kirjutatud keeles JavaScript
Veebisait https://www.npmjs.com/

npm (Node Package Manager) on JavaScripti programmeerimiskeele jaoks loodud paketihaldur. See on JavaScripti käituskeskkonna Node.js standardne paketihaldur. See koosneb kolmest eraldiseisvast komponendist: veebileht, käsurida ehk tekstiline kasutajaliides ning võrgus olev register (npm registry), mida kasutatakse avalike ja privaatsete pakkide hoiustamiseks. Register on sisuliselt avalik JavaScripti tarkvara andmebaas. Tegemist on maailma suurima tarkvara registriga.[1] Registris kättesaadavaid pakette on võimalik näha ja otsida npm veebilehel.

Ajalugu[muuda | muuda lähteteksti]

npm on kirjutatud täielikult JavaScripti keele baasil. Selle arendas välja Isaac Z. Schlueter.

Enne npmi loomist töötas Schlueter Yahoos, kus oli tal harjumuseks saanud oma töös paketihalduri kasutamine. Aastal 2009, pärast Node.js'i tulekut hakkas ta npmi kallal töötama, sest kuigi Node.js'i arendus liikus tema arvates õiges suunas, tundis ta siiski puudust korralikust paketihaldurist.[2] Kuna ta oli kokku puutunud erinevate paketihalduritega, millest ükski polnud veatu ning mõned lausa kohutavad, oli tema jaoks oluline, et Node'i pakettide ja moodulite haldamine toimuks valutult.[3]

Kirjeldus[muuda | muuda lähteteksti]

npm on märgitud Node.js installimisel soovitatavaks funktsiooniks.[4] npm koosneb käsurea kasutajaliidesest, mis suhtleb võrgus oleva registriga. See võimaldab kasutajatel lihtsasti alla laadida ja kasutada teiste poolt kirjutatud koodi ning ka enda loodud mooduleid vaevata levitada.[5] Registris olevad paketid on CommonJS- vormingus ja sisaldavad metaandmete faili JSON- vormingus.[6] Npmi registris on praeguseks saadaval üle miljoni paketi.[7] Kuna registrisse lisatavate pakettide päritolu ei kontrollita, võib seal esineda halva kvaliteediga ja isegi pahatahtlikke mooduleid. Eraldi pakettide päritolu kontrollimise asemel loodab npm kasutajatele, et need vajadusel annaksid teada süsteemi sattunud pakettidest, mis rikuvad npmi poolt sätestatud reegleid.[8] Lisaks sellele on võimalik kasutajatel pakettide usaldusväärsust hinnata veebilehel kuvatud statistika (allalaadimiste arv, sõltuvate pakettide arv jne) põhjal. [9]

Kasutus[muuda | muuda lähteteksti]

npm saab hallata nii konkreetse projekti lokaalseid sõltuvusi kui ka globaalselt installitud JavaScripti tööriistu.[10] Kasutades npmi lokaalse projekti pakettide haldamiseks, on package.json faili abil ühe käsuga võimalik installida kõik projekti sõltuvused.[11] Failis package.json saab igale sõltuvusele määrata kehtivate versioonide vahemiku, mis võimaldab arendajatel sõltuvusi automaatselt värskendada, vältides samal ajal soovimatuid muudatusi, mis võivad rakenduse katki teha.[12]

Alternatiivid[muuda | muuda lähteteksti]

Kuigi npmi kasutatakse JavaScripti paketihaldurite seast kõige rohkem,[13] leidub sellele ka mitmeid avatud lähtekoodiga alternatiive. Nendest kõige poplaarsemad on ied, pnpm, npmd ja yarn, millest viimane loodi 2016. aasta oktoobris Facebook'i poolt.[14] Kõik mainitud haldurid kasutavad vaikimisi ka avalikku npm-registrit, kuid pakuvad kasutajale erinevaid variante jõudluse kasutajamugavuse parandamiseks.[15]

Viited[muuda | muuda lähteteksti]

  1. "About npm". docs.npmjs. Npm. Vaadatud 12. detsember 2019. 
  2. Fleishman, Glenn (Oktoober 2017). "Interview with Isaac Z. Schlueter, CEO of npm". Increment. Vaadatud 12. detsember 2019. 
  3. Schlueter, Isaac Z (26. märts 2013). "Github comment". Github. Vaadatud 12. detsember 2019. 
  4. Dierx, Peter (30. märts 2016). "A Beginner's Guide to npm — the Node Package Manager". sitepoint. Vaadatud 12. detsember 2019. 
  5. Ampersand.js. "Ampersand.js - Learn". ampersandjs.com. Vaadatud 12. detsember 2019. 
  6. Ojamaa, Andres; Duuna, Karl (2012). "Assessing the Security of Node.js Platform". 2012 International Conference for Internet Technology and Secured Transactions. IEEE. ISBN 978-1-4673-5325-0. Vaadatud 12. detsember 2019. 
  7. Tal, Liran; Maple, Simon (4. juuni 2019). "npm passes the 1 millionth package milestone! What can we learn?". Snyk. Vaadatud 12. detsember 2019. 
  8. "npm Code of Conduct: acceptable package content". Vaadatud 12. detsember 2019. 
  9. Vorbach, Paul. "npm-stat: download statistics for NPM packages". npm-stat.com. Vaadatud 12. detsember 2019. 
  10. Ellingwood, Justin. "How To Use npm to Manage Node.js Packages on a Linux Server". DigitalOcean. Vaadatud 12. detsember 2019. 
  11. "npm-install". docs.npmjs. Vaadatud 12. detsember 2019. 
  12. "semver". docs.npmjs. Vaadatud 12. detsember 2019. 
  13. Pronschinske, Mitch. "The most popular JavaScript front-end tools". TechBeacon. Vaadatud 12. detsember 2019. 
  14. "Hello, Yarn!". The npm Blog. 11. oktoober 2016. Vaadatud 12. detsember 2019. 
  15. Katz, Yehuda (11. oktoober 2016). "Why I'm working on Yarn". Vaadatud 12. detsember 2019.