Natrag na blog

Korištenje Node.js modula uz npm i package.json: Vodič

Korištenje Node.js modula uz npm i package.json: Vodič

Node.js je open-source višeplatformsko JavaScript runtime okruženje. Posljednjih nekoliko godina postalo je popularan izbor za back-end web razvoj zbog svojih brzih ulazno/izlaznih (I/O) performansi i nenadmašne JavaScript sintakse. Također, njegova prilagodljiva priroda omogućuje brzu prilagodbu, čineći da se ova serverska tehnologija ističe među konkurentima.

Node.js upravitelj paketa — Pregled

Node.js Package Manager ili npm je zadani upravitelj paketa za JavaScript. Npm se često koristi za instalaciju projektnih skripti i upravljanje vanjskim modulima u Node.js projektu. Osim toga, prati module instalirane u projektu pomoću package.json datoteke, koja se nalazi u direktoriju projekta. Npm pohranjuje i bilježi sljedeće informacije:

  • Module potrebne za projekt i njihove instalirane verzije, ako postoje.
  • Metapodatkovni opis projekta koji uključuje detalje o autoru i licenci, da spomenemo samo neke.
  • Izvršne skripte za automatizaciju zadataka povezanih s projektom ili usmjerenih na cilj.

U ovom vodiču, provest ćemo vas kroz korake korištenja Node.js modula s npm-om i package.json.

Započnimo!

Preduvjeti

Kako biste pratili ovaj vodič, trebat će vam sljedeće:

Korak 1: Izradite package.json datoteku

Započnimo naš vodič na primjeru oglednog projekta koji koristi Node.js locator modul. Cilj projekta je prikupiti IP adresu korisnika i prikazati izlaz kao državu podrijetla korisnika. Budući da smo usredotočeni na razumijevanje korištenja Node.js modula s npm, nema potrebe za ručnim pisanjem modula. Umjesto toga, koristit ćemo unaprijed instalirane i prilagodljive pakete u našem projektu.

JSON ili JavaScript Object Notation je standardni format koji se koristi za dijeljenje i prijenos podataka. Na početku ćemo stvoriti JSON datoteku koja će pohranjivati i upravljati softverskim ovisnostima. Međutim, ručno stvaranje package.json datoteke je naporno i dugotrajno. Radi jednostavnosti, koristit ćemo naredbu init za stvaranje package.json datoteke umjesto da ulažemo trud u pisanje dodatnih blokova koda kako bismo napisali naš JSON od nule.

  • init naredba

Prvo, stvorimo novu mapu pomoću naredbe mkdir i nazovimo je locator:

Zatim upotrijebite naredbu cd za pomicanje u novostvorenu mapu:

Zatim, upišite npm za pokretanje interaktivnog upita:

Nakon toga vidjet ćete izlaz:

Node.js Modules npm init 1

1. name

Bit ćete preusmjereni na name vašeg novog projekta; trenutnu mapu. Vidjet ćete zadane vrijednosti u zagradama (). Kako bi ovaj vodič ostao jednostavan i lak za razumijevanje, odabrat ćemo zadane opcije. Pritisnite ENTER za prihvaćanje i nastavak.

2. version

Sljedeća vrijednost je version naziv koji je ključni zahtjev ako dijelite svoj projekt u npm repozitoriju paketa.

Napomena: Node.js paketi slijede semantičko verziranje (semver) vodič.

Prvi broj: MAJOR verzija i mijenja se samo kada se API promijeni.

Drugi broj: MINOR verzija koja se mijenja kada se dodaju nove značajke.

Zadnji broj: PATCH verzija koja se mijenja kada se ispravi pogreška ili bug.

3. description

Polje description je informativni niz koji opisuje proces rada Node.js modula. U našoj demonstraciji, projekt locator će dohvatiti IP adresu korisnika i vratiti državu podrijetla.

Napomena: Većinom moduli imaju index.js datoteku kao ulaznu točku. To je također i main svojstvo datoteke package.json, ulazna točka za npm module. Međutim, ako package.json nije pronađena, Node.js će učitati index.js automatski.

4. test naredba

To je izvršna skripta ili naredba za pokretanje testova vašeg projekta. Budući da je testiranje izvan opsega našeg vodiča, preskočimo ga i pritisnimo ENTER.

5. init naredba

Naredba init će tražiti GitHub repozitorij projekta. Ponovno, preskočimo ovaj dio i nastavimo.

6. keywords

Ključne riječi su niz nizova znakova koji se koriste za pretraživanje repozitorija. Preporučuje se da ključne riječi budu točne i relevantne za vaš projekt kako bi se mogle neometano pratiti.

Navedite ove ključne riječi kao nizove znakova i odvojite ih zarezima. U našem projektu upišite ip, country, latitude, i longitude na upit i vidjet ćete ih uključene kao ključne riječi u package.json.

7. author

Tretirajte polje author kao povratnu informaciju i način interakcije s vašim korisnicima. Na primjer, ako korisnici otkriju pogrešku u vašem modulu, mogu koristiti ovo polje da vas obavijeste i kako bi se pogreška ispravila.

  • Format: "Ime \<E-pošta\> (Web-stranica)".

    • Demo: "Paul\<paul@your_domain\> (https://your_domain)"

Dodavanje e-pošte i web-stranice je neobavezno. Međutim, možete navesti valjanog autora i dodati svoje kontakt podatke kao author. Potvrdite detalje i pritisnite ENTER.

8. license

Polje license prikazuje pravne uvjete i odredbe koje korisnici moraju znati prilikom korištenja vašeg modula. Budući da su Node.js moduli otvorenog koda, npm ga automatski konfigurira na ISC-licencu .

Idite na stranicu s licencama otvorenog koda i odaberite onu Open Source Initiative koja najbolje odgovara vašim potrebama. Upišite UNLICENSED na upit ako vam ne treba licenca za vaš repozitorij. U našem vodiču koristit ćemo zadanu ISC licencu. Pritisnite ENTER kako biste dovršili ovaj proces.

Naredba init stvorit će datoteku package.json i prikazati rezultat:

Node.js Modules npm init

Zatim pritisnite ENTER za nastavak i stvaranje datoteke package.json . Naša JSON datoteka vodit će evidenciju o svim modulima i paketima koje ćemo instalirati u našem projektu.

U sljedećem koraku instalirat ćemo zavisnosti i Node.js module.

Step 2: Install Dependencies and Modules

Stvaranje prilagođenih vanjskih biblioteka oduzima puno vremena i zahtijeva napor. Alternativno, najučinkovitiji način je instaliranje unaprijed definiranih zavisnosti i vanjskih biblioteka. U našem vodiču koristit ćemo HTTP biblioteku kako bismo omogućili našem demo modulu za lociranje upućivanje vanjskog API zahtjeva za prikupljanje geografskih podataka.

U ovom vodiču koristit ćemo biblioteku axios za upućivanje HTTP zahtjeva. Prvo, instalirajmo axios:

Započnite s instalacijom npm paketa, nakon čega ih navedite odvojene razmakom. Također, uključite oznaku --save kako biste osigurali da je projekt spremljen kao zavisnost projekta.

Vidjet ćete izlaz:

Node.js Modules install axios

Otvorite package.json pomoću nano ili bilo kojeg drugog uređivača teksta po vašem izboru:

Uočite novo dodano svojstvo istaknuto na dnu bloka koda:

Node.js Modules package json

  • Preuzmite razvojne zavisnosti

Razvojne zavisnosti su paketi koji se koriste u razvoju projekta i nemaju nikakvu svrhu u produkciji ili održavanju projekta. Iako ove zavisnosti mogu zvučati neučinkovito u produkcijskim okruženjima, one igraju značajnu ulogu u pisanju i prepisivanju koda.

Poput alata za provjeru koda (code linters), razvojne zavisnosti igraju ključnu ulogu u razvoju softvera. Programeri uglavnom koriste alate za provjeru koda kako bi održali ujednačenost i dosljednost u stiliziranju tijekom razvoja projekta, što je inače beskorisno u produkciji.

Instalirajmo linter kao razvojnu zavisnost za vaš projekt. Također, upotrijebite zastavicu --save-dev kako biste spremili eslint kao zavisnost potrebnu za razvoj:

Dodali smo @6.0.0 našoj zavisnosti tako da kada ažuriramo module, oni dobiju oznaku verzije. Simbol @ obavijestit će npm da potraži određenu oznaku koju želite instalirati. Sada ponovno otvorite package.json datoteku:

Vidjet ćete izlaz:

dev package json

  • Samogenerirane datoteke: node_modules i package-lock.json

Na početku, prilikom instaliranja paketa u Node.js projekt, datoteke package.json i package-lock.json stvaraju se automatski. Potvrdite ove datoteke u radnom direktoriju:

Budući da je većina instaliranih zavisnosti pohranjena u node_modules mapu, preporučljivo je ne predavati ovu mapu u vaš repozitorij pod kontrolom verzija. S povećanjem broja instaliranih ovisnosti, veličina node_modules se također povećava.

Nasuprot tome, datoteka package-lock.json vodi evidenciju o točnim instaliranim verzijama, pa nema potrebe eksplicitno uključivati node_modules. Za razliku od mape node_modules , ovu datoteku možete predati u svoj repozitorij pod kontrolom verzija jer pruža detaljan prikaz svih vaših ovisnosti zajedno s njihovim verzijama.

  • Instalirajte pomoću package.json

Datoteke package.json i package-lock.json omogućuju vam postavljanje istih ovisnosti projekta prije pokretanja razvoja projekta. Idite na svoje stablo direktorija i stvorite novu mapu na istoj razini direktorija kao i locator. Nazovite novu mapu cloned_locator:

Zatim prijeđite u cloned_locator:

Uvezite datoteke package.json i package-lock.json iz locator u cloned_locator:

Znak . označava trenutnu mapu. Instalirajte potrebne module pomoću sljedeće naredbe:

Na početku, npm će provjeriti datoteku package-lock.json kako bi instalirao module. Ako lock datoteka nije dostupna, čita datoteku package.json kako bi odredio instalacije.

Općenito, instalacija iz datoteke package-lock.json je jednostavna jer lock datoteka sadrži točnu verziju modula i njihovih ovisnosti. To znači da kada instalirate pomoću package.json, npm će uštedjeti dodatno vrijeme potrebno za pronalaženje kompatibilne i stabilne verzije.

Zanemarite razvojne ovisnosti dodavanjem oznake --production :

Nakon toga se vratite u locator:

  • Globalne instalacije

Do sada smo instalirali npm module lokalno. Međutim, imate i alternativu za globalnu instalaciju paketa i njihovo korištenje putem naredbe ljuske ili CLI-ja. Na primjer, možete upravljati trenutnim projektom locator pomoću biblioteke Hexo i upravljati svojom statičkom web stranicom. Koristite sljedeću naredbu s oznakom -g za globalnu instalaciju Hexo CLI-ja:

Napomena: Ako dobijete pogrešku prilikom globalne instalacije paketa, isprobajte ovu naredbu sudo npm i hexo-cli -g  s root vjerodajnicama.

Koristite sljedeću naredbu kako biste provjerili je li paket uspješno instaliran:

Vidjet ćete izlaz:

hexo version

Korak 3: Upravljanje i ažuriranje modula

Upravitelj paketa ima više posla od samog instaliranja Node.js modula. Postoji mnoštvo opcija prilagodbe gdje možete izlistati, ažurirati, deinstalirati ili čak dodati sigurnosni sloj po želji.

U ovom odjeljku naučit ćemo kako:

  1. Izlistati module

  2. Ažurirati module

  3. Deinstalirati module

  4. Revidirati module

Raspravimo o svakom detaljnije:

  1. Izlistavanje modula

Izlistavanje modula, kao što naziv sugerira, pružit će vam detalje o svim modulima instaliranim na projektu. Umjesto čitanja datoteke package.json , možete koristiti naredbu ls ili list kako biste detaljno saznali o modulima vašeg projekta:

Vidjet ćete izlaz:

npm list op

Prema zadanim postavkama, naredba ls izlistava cijelo stablo ovisnosti koje uključuje ovisnosti projekta i module o kojima ovisi. Međutim, možete dobiti i pregled iz ptičje perspektive te eksplicitno ciljati određeni modul. Koristite sljedeću naredbu za provjeru modula koje ste instalirali bez njihovih ovisnosti:

Vidjet ćete izlaz:

npm list depth zero

  1. Ažuriranje modula

Uvijek je preporučljivo održavati svoj npm modul ažuriranim kako se ne biste suočili s rušenjem softvera ili konfliktima. Koristite sljedeću naredbu da biste provjerili postoji li potreba za ažuriranjem:

Vidjet ćete izlaz:

Outdated

Shvatimo svaki pojam detaljnije:

  • Paket: Navodi trenutni Package instaliran u vašem projektu.
  • Trenutno: Ovo prikazuje Current verziju paketa.
  • Traženo: Prikazuje npm verzija koja najbolje odgovara zahtjevu za verzijom u package.json.
  • Najnovije: Prikazuje najnoviju npm verziju koja je objavljena i koju morate ažurirati ako je potrebno.
  • Lokacija: Paket Lokacija u stablu ovisnosti.

Kao što je predloženo, možemo ažurirati naš npm na stabilnu verziju. Koristite sljedeću naredbu za ažuriranje trenutnog paketa:

Vidjet ćete izlaz:

update eslint

Umjesto da ih ažurirate jednog po jednog, također možete ažurirati sve module odjednom pomoću up naredbe:

  1. Deinstalacija modula

Mnogo puta ovisnost možda neće prikazati očekivani izlaz i morat ćete stvoriti prilagođenu ovisnost. U takvim scenarijima imate opciju deinstaliranja ovisnosti iz vaših package.json i package-lock.json datoteka. Pretpostavimo da imate axios kao ovisnost i ona ne pruža zadovoljavajući rezultat. Bez sumnje ćete ukloniti ovo spremište iz svog projekta. Koristite uninstall ili un naredbu za uklanjanje axios:

Vidjet ćete izlaz:

Uninstall axios

Iako je uninstall naredba uklonila ovisnost, nismo primili nikakvu obavijest o njezinom uklanjanju. Izlistajmo ovisnosti kako bismo vidjeli koliko ovisnosti sada imamo:

Vidjet ćete izlaz bez ovisnosti axios na popisu:

npm list

  1. Revizija modula

Ako su ovisnosti instalirane u vašem projektu sklone bilo kakvoj potencijalnoj sigurnosnoj prijetnji, možete ih otkriti. Najprije morate instalirati zastarjelu verziju modula request kako biste vidjeli kako radi modul za reviziju:

Vidjet ćete izlaz koji vas poziva da popravite prijetnje ili ranjivosti:

add request

Za proširenje pojedinosti o ranjivostima i prijetnjama, koristite audit naredbu:

Vidjet ćete detaljno sigurnosno izvješće:

Node.js Modules Audit security report

Za rješavanje ovih ranjivosti koristite fix naredbu:

Vidjet ćete izlaz:

audit update

Možda ste primijetili da su dvije od devet ranjivosti popravljene. Međutim, preostalih sedam ranjivosti i dalje postoji u vašim ovisnostima jer audit fix ne rješava sve probleme. Kako biste riješili ovaj problem, možda ćete morati ažurirati svoju ovisnost na višu verziju pomoću drugog API-ja. Budite oprezni pri ažuriranju jer postoji vjerojatnost da biste mogli prekinuti kod više u stablu ovisnosti. Koristite sljedeću naredbu kako biste potvrdili da su ranjivosti nestale:

Budite oprezni kada koristite drugačiji API za rješavanje prijetnji ranjivosti jer ako niste sigurni u to, to može dovesti do narušavanja funkcionalnosti koda.

Zaključak

Za kraj, demonstrirali smo kako koristiti Node.js module s npm and package.json. Osim toga, prošli smo kroz metode izlistavanja, ažuriranja, upravljanja, revizije i deinstaliranja ovisnosti naših paketa. Kao sljedeći izazov, potičemo vas da upotrijebite koncepte o kojima se raspravlja u ovom vodiču i sami eksperimentirate s instaliranjem i testiranjem paketa. Također možete pokušati izgraditi Node.js aplikacije i konfigurirati ovisnosti kako biste unaprijedili svoje učenje.

Osim toga, postoji mnogo drugih materijala za učenje o Node.js i Javascript temama koje možete pronaći na našem blogu:

Sretno programiranje!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.