Ovisnosti omogućuju učinkovitu ponovnu upotrebu koda. Provjerite znate li upravljati njima u svojim Node projektima.

Zavisnost je dio koda - biblioteka, modul ili paket - koji projekt zahtijeva da ispravno funkcionira.

U Node.js, ovisnosti i devDependencies su kategorije paketa koje možete definirati u svojoj datoteci package.json za upravljanje ovisnostima vašeg projekta. Istražite njihove razlike i naučite kako ih koristiti u svojim projektima.

Uobičajene ovisnosti u npm projektu

Uobičajene ovisnosti—ili, jednostavno, ovisnosti—su paketi koje vaša aplikacija zahtijeva da bi radila kako je predviđeno tijekom izvođenja iu proizvodnim okruženjima.

Ovisnosti mogu uključivati:

  • Vanjske biblioteke koje nude unaprijed izgrađenu funkcionalnost, kao što je lodash.
  • Okviri koji pružaju temelj ili strukturu za izgradnju aplikacija, kao što su Express ili React.
  • Upravljački programi baze podataka, kao što su MongoDB ili sqlite3.
  • Paketi koji pomažu u zadacima povezanim s mrežom, kao što su Axios ili Socket.io.

Na primjer, ako gradite a CRUD API s Express.js, izraziti bit će jedna od vaših ovisnosti jer vaš poslužitelj to treba za funkcioniranje.

Za instaliranje ovisnosti o vremenu izvođenja, možete koristiti upravitelj paketa poput npm, upravitelj paketa čvora, odnosno Pređa.

Zavisnosti postoje pod objektom ovisnosti u datoteci package.json. Objekt ovisnosti pohranjuje nazive i verzije paketa.

Da biste instalirali paket kao ovisnost koristeći NPM, pokrenite naredbu u nastavku:

npm instalirati 

Gornja naredba instalira paket i registrira ga kao ovisnost vašeg projekta u paket.json:

// package.json

"ovisnosti": {
"naziv-paketa": "^verzija-paketa",
}

Kada klonirate projekt iz repozitorija temeljenog na webu, možete instalirati ovisnosti pokretanjem naredbe ispod:

npm instalirati

Kada pokrenete gornju naredbu, vaš upravitelj paketa čita paket.json datoteku i instalira navedene ovisnosti i devDependencies iz registra paketa.

Razvojne ovisnosti i kako ih koristiti

Razvojne ovisnosti—ili devDepenendencies—su paketi koji su vašoj aplikaciji potrebni samo tijekom procesa razvoja. Drugim riječima, nisu potrebni u proizvodnji.

devDependencies mogu uključivati:

  • Okviri za testiranje, kao što su Jest ili Mocha.
  • Test Runners, kao što je Chai.
  • Linteri i formateri, kao što je Eslint.
  • Alati za dokumentaciju, kao što je Swagger.

Uobičajen primjer devDependency je paket Nodemon, koji ponovno pokreće vaš poslužitelj kada otkrije promjene u vašim skriptama.

Možete definirati devDependencies pod devDependencies objekt u a paket.json datoteka. Ovaj objekt pohranjuje nazive i verzije paketa.

Možete instalirati paket kao devDependency pokretanjem ove naredbe:

npm instalirati  --save-dev

Alternativno, možete instalirati paket kao devDependency pokretanjem ove naredbe:

npm instalirati -D 

Gornja naredba instalira i registrira paket u vašem paket.json datoteka, ovako:

// package.json
"ovisnosti o programerima": {
"naziv-paketa": "^verzija-paketa"
}

Kada klonirate projekt iz repozitorija temeljenog na webu, pokretanje npm instalirati naredba će također instalirati devDependencies.

Međutim, izvođenje naredbe s proizvodnja zastavica instalira samo ovisnosti.

Na primjer:

npm instalacija --proizvodnja

Kada pokrenete gornju naredbu, vaš upravitelj paketa čita paket.json datoteku i instalira ovisnosti vaše aplikacije iz registra paketa.

Alternativno, možete postaviti ČVOR_ENV varijabla za "proizvodnja” za postizanje istih rezultata.

Druge vrste ovisnosti

Osim ovisnosti i devDependencies, Node.js također kategorizira pakete kao peerDepenecies i optionalDependencies.

Ovisnosti ravnopravnih korisnika

Ravnopravne ovisnosti su ovisnosti koje paket koristi kada očekuje da određena verzija ili kompatibilna verzija drugog paketa bude prisutna u aplikaciji koja ga koristi.

Svrha ravnopravnih ovisnosti je osigurati da paket ispravno radi sa svojim ovisnostima i izbjegava sukobe ili probleme s kompatibilnošću.

Za npm verzije manje od v7, peer ovisnosti se ne instaliraju automatski. Umjesto toga, kod koji uključuje paket mora ga uključiti kao ovisnost. Ako ga paket ne uključuje, npm će pokrenuti upozorenje.

Oni postoje pod peerDependencies objekt u datoteci package.json:

"ovisnosti ravnopravnih": {
"paket": "^verzija"
}

Izborne ovisnosti

Izborne ovisnosti su paketi koji nisu bitni za temeljnu funkcionalnost projekta, ali mogu poboljšati njegove mogućnosti ako su dostupne.

Budući da neobavezne ovisnosti nisu potrebne za ispravan rad projekta, možete ih izostaviti tijekom instalacije.

Pokretanje naredbe u nastavku preskočit će neobavezne ovisnosti tijekom postupka instalacije:

npm install --omit=neobavezno

Oni postoje pod optionalDependencies objekt u datoteci package.json:

"neobavezne ovisnosti": {
"paket": "^verzija"
}

Kategorije olakšavaju upravljanje ovisnostima

Učinkovito razumijevanje, upravljanje i kategorizacija ovisnosti pomaže osigurati jasno odvajanje između paketa potrebnih za proizvodnju i onih koji su potrebni samo tijekom razvoja.

Ova razlika pomaže u učinkovitom upravljanju ovisnostima, ispravnom povezivanju i pojednostavljenoj implementaciji vašeg projekta.