Izinkinga ezivamile ze-npm nokuthi Ungazilungisa Kanjani Ngokuphepha

Isibuyekezo sokugcina: 03/16/2026
  • Izinkinga eziningi ze-npm zivela ezinkingeni zokucushwa kwemvelo njengezinqubomgomo zokusebenzisa kanye nezimvume kunokuba kube yi-npm uqobo.
  • Ukufakwa okuqinisekile nge npm ci kanye nokusetshenziswa ngokucophelela kwe npm audit ukunciphisa uchungechunge lokuhlinzeka kanye nezingozi zobuthakathaka.
  • Ukugwema sudo npm, ukunciphisa ukuncika okungadingekile, nokusebenzisa iziqalo zezinga lomsebenzisi kugcina ukufakwa komhlaba wonke kuphephile futhi kuzinze kakhudlwana.
  • Ukubhala nge-verbose, i-npm doctor, kanye nokufaka kabusha i-clean ngezikhathi ezithile kungamathuluzi abalulekile okuxilonga nokuxazulula amaphutha e-npm aqinile.

izinkinga zokuxazulula izinkinga ze-npm

Ukubhekana nezinkinga ezixakile ze-npm kungakhungathekisa kakhulu, ikakhulukazi lapho konke obekukufuna nje ukufaka iphakheji bese ubuyela ekubhaleni amakhodi. Kusukela ku-PowerShell blocking scripts ku-Windows, kuya ekuvumeleni amaphupho amabi ku-Linux, kuya ohlwini olungapheli lobuthakathaka embikweni wakho wokuhlola, amaphutha e-npm angashesha abe amahora amaningi okulahleka komkhiqizo uma ungazi ukuthi ubheke ini.

Lo mhlahlandlela ukuqondisa ezinkingeni ezivame kakhulu zomhlaba wangempela uma usebenzisa i-npm, uchaza ukuthi kungani zenzeka, futhi ukukunikeza izixazululo ezisebenzayo nezivivinywe yimpi. Sizobheka izinqubomgomo zokusebenzisa i-Windows, amaphutha emvume yomhlaba wonke, izingibe zokuphepha ku-npm ecosystem, umehluko phakathi kobuthakathaka be-dev kanye nokukhiqiza, yini npm ci ngempela, nokuthi ungalungisa kanjani izinkinga zokufakwa okuphukile kanye ne-cache ngaphandle kokwethuka.

Inqubomgomo yokusebenzisa i-PowerShell ivimba i-npm ku-Windows

Esinye sezithiyo zokuqala abasebenzisi abaningi beWindows abazitholile ngemuva kokufaka i-Node.js ukuthi i-npm imane yenqaba ukusebenza ku-PowerShell. I-terminal iphonsa iphutha ngokulandelana kwe- "ayikwazi ukulayisha ifayela C:\Program Files\nodejs\npm.ps1 ngoba ukusebenzisa izikripthi kukhutshaziwe kulolu hlelo”, kanye ne- PSSecurityException kanye nesiphakamiso okufanele usifunde about_Execution_Policies.

Le nkinga ayihlobene nokufakwa kwe-Node.js okubi; iyisici sokuphepha se-PowerShell esibizwa ngokuthi inqubomgomo yokwenza. Ngokuzenzakalelayo, ezinye izisetho zeWindows zivimbela noma yisiphi iskripthi sendawo (kufaka phakathi i-PowerShell wrapper ka-npm) ukuthi sisebenze, okwenza i-PowerShell treat npm.ps1 njengokuqukethwe okungase kungaphephile.

Ukuze ulungise lokhu, ngokuvamile udinga ukukhulula inqubomgomo yokusebenzisa i-PowerShell kumsebenzisi wakho wamanje, esikhundleni sokukhubaza ukuphepha ngokuphelele ezingeni lesistimu. Indlela evamile ukusebenzisa i-PowerShell njengoMlawuli bese usebenzisa umyalo onjengokuthi Set-ExecutionPolicy RemoteSigned -Scope CurrentUser, okuvumela izikripthi ezidalwe endaweni ngenkathi kusavinjelwa ezikude ezingasayiniwe.

Uma ukhetha ukungashintshi nhlobo inqubomgomo ye-PowerShell, ungasebenza kulokhu ngokusebenzisa i-Command Prompt (cmd.exe) noma i-Windows Terminal enegobolondo elihlukile. Kulezo zimo i-npm ayidluli kuskripthi se-PowerShell, ngakho-ke umkhawulo awusebenzi futhi npm imiyalo kufanele isebenze uma nje i-Node.js ingezwe kahle ku-PATH yakho.

Yini ngempela eyenziwa yi-npm ci nokuthi kungani ibalulekile

Uma i-npm isisebenza, omunye umyalo ovame ukuphakamisa imibuzo ngukuthi npm ci, okuziphatha ngendlela ehlukile kunejwayelekile npm install. Ngenkathi kokubili kuxhomeke ekufakweni, npm ci iklanyelwe ngqo izindawo ezihlanzekile neziphindaphindwayo njengemipayipi yokuhlanganiswa okuqhubekayo (CI).

Umehluko oyinhloko yilokho npm ci ayinaki ububanzi benguqulo ku package.json futhi ifaka ngqo izinguqulo ezifakwe ku- package-lock.json. Lokho kusho ukuthi azikho izinguqulo zokuncika "ezihambisanayo kodwa ezintsha" ezingena ekwakhiweni kwakho ngoba nje zanyatheliswa kamuva; ukufakwa ngakunye kunqunywa inqobo nje uma ifayela lokukhiya lihlala lifana.

Ngokombono wokusebenza, npm ci ngokuvamile ishesha kakhulu kwi-CI ngoba yeqa izinyathelo ezithile zokuxazulula ukuncika futhi ithatha i-slate ehlanzekile. Kulindele ukuthi node_modules isiqondisi asinalutho noma sizosulwa, okuvumela i-npm ukuthi igweme ukuhlolwa okuningi okwengeziwe kanye nezibuyekezo npm install ngokuvamile kuzosebenza.

Ngokombono wezokuphepha kanye nochungechunge lokuhlinzeka, npm ci kunciphisa kakhulu ingozi yokuthi izinguquko zokuncika ezingakabuyekezwa zingene ezakhiweni zakho zokukhiqiza. Njengoba ingafuni izinguqulo ezintsha ezihambisanayo, uvala isihlahla sakho sokuthembela kulokho ithimba lakho elikukhiphile futhi lakuhlola, okwenza ukukhiqizwa kabusha kwezigameko kanye nokuhlaziywa kobuthakathaka kube lula kakhulu.

Amaqembu agxile kwezokuphepha avame ukuhlangana npm ci ngamathuluzi okuskena okuxhomekeka okuzenzakalelayo ahlola yonke iphakheji, kufaka phakathi lawo akhiywe ku package-lock.json Ifayela. Ngaleyo ndlela, noma ngabe ifayela lakho lokukhiya lalihlanzekile ngesikhathi lifakwa, ubuthakathaka obusanda kutholakala noma amaphakheji anonya angabanjwa ngesikhathi sokwakhiwa kwe-CI ngaphambi kokuba uhlelo lokusebenza lusetshenziswe.

Izimvume ze-npm zomhlaba wonke kanye nomthetho othi “ungalokothi usebenzise i-sudo npm”

Kuzinhlelo ezifana ne-Unix (i-Linux, i-macOS), esinye sezigaba ezidume kakhulu zezinkinga ze-npm sivela ekufakeni amaphakheji omhlaba wonke anamalungelo aphezulu. Uma uke wabona izixwayiso ezinjengokuthi “Ukuntuleka kokufinyelela kokubhala ku- /usr/lib/node_modules"noma amaphutha afana nokuthi EACCES: permission denied, usuhlangane nalolu hlobo lwenkinga.

Ngokuzenzakalelayo, i-npm ivame ukuzama ukufaka amaphakheji afakwe emhlabeni jikelele ngaphansi /usr (Ngokwesibonelo /usr/lib/node_modules kanye nezenzo ezisebenzayo ku /usr/bin), okuyiziqondisi zesistimu ezivame ukuba ngezingcambu. Uma abasebenzisi beqala ukusebenza sudo npm install -g ... ukuze "kulungiswe" amaphutha emvume, amafayela nezinhlu zemibhalo kuba ngabanikazi bempande, okubangela ukuthi imiyalo yakamuva isebenze njengomsebenzisi ojwayelekile ukuze ibhekane nezinkinga zokufinyelela ukubhala.

Ukuthatha okukhulu kulula: ungasebenzisi i-npm njengempande futhi ugweme ukusebenzisa sudo nge-npm ngaphandle kokuthi uqinisekile ngokuphelele ngalokho okwenzayo. Ngaphandle kwesiphithiphithi sezimvume, ukufaka i-JavaScript yomuntu wesithathu njengempande kwandisa nomthelela wanoma iyiphi iphakheji enonya noma eyonakalisiwe, okwenza ilawule ngokugcwele uhlelo lwakho.

Ukuze uhlole ukuthi i-npm ibeka kuphi amaphakheji omhlaba njengamanje, ungagijima npm config get prefix, okuvame ukubuyisa into efana /usr ekusethweni okuyinkinga. Leso siqalo sinquma ukuthi amamojula omhlaba wonke kanye nama-binary awo aphelela kuphi, ngakho-ke uma isiqalo sikhomba endleleni yesistimu, izinkinga zemvume cishe azinakugwenywa ngokuhamba kwesikhathi.

Isixazululo esiphephile nesinconywayo ukuhambisa isiqalo se-npm somhlaba wonke ngaphakathi kwesiqondisi sasekhaya somsebenzisi wakho, lapho unokulawula okugcwele ngaphandle kwamalungelo aphezulu. Iphethini evamile ukudala isiqondisi esifana nokuthi ~/.npm-global bese ugijima npm config set prefix '~/.npm-global' ukuze zonke izinto ezifakiwe emhlabeni jikelele zesikhathi esizayo zifike lapho esikhundleni sazo /usr.

Ngemva kokushintsha isiqalo, kufanele wengeze isiqondisi esisha se-global binaries ku-PATH yakho ukuze uhlelo lukwazi ukuthola imiyalo efakwe emhlabeni jikelele. Isibonelo, ungase wengeze umugqa ofana export PATH=~/.npm-global/bin:$PATH kufayela lakho lokuqalisa legobolondo (njenge ~/.bashrc or ~/.zshrc), bese uqala kabusha i-terminal ukuze ushintsho luqale ukusebenza.

Uma lokhu sekulungiselelwe kahle, kuzophinde kusetshenziswe npm doctor iba ukuhlolwa okuhle kokuqonda: kufanele ibike ukuthi amafayela agciniwe kanye ne-global node_modules ziyafundeka futhi ziyabhalwa ngumsebenzisi wakho wamanje. Qaphela ukuthi uma ushintshela kufolda entsha yomhlaba wonke, amaphakheji omhlaba wonke afakwe ngaphambilini ngeke esatholakala futhi kuzodingeka ufake kabusha lawo owasebenzisa ngempela.

Ukusebenzisa udokotela we-npm ukuthola izinkinga zemvelo

Amakhanda amaningi e-npm awabangelwa yiphrojekthi ethile kodwa yisimo se-npm esiphukile noma esingaguquguquki emshinini wakho. Umyalo npm doctor yakhelwe lokhu ngqo: isebenzisa isethi yokuhlolwa kwezempilo ekusethweni kwakho kwe-npm futhi iqokomisa izinkinga ezingaba khona.

Uma uqalisa npm doctor, i-npm ihlola ukuxhumeka kurejista, iqinisekisa izinguqulo zakho ze-npm kanye ne-Node.js, ihlola i-URL yakho yokubhalisa elungiselelwe, futhi ihlola izimvume kumafolda e-cache kanye neziqondisi zemodyuli yomhlaba wonke. Ukuhlola ngakunye kubikwe ngesimo esithi “kulungile” noma “akulungile”, okwenza kube lula ukubona ukulungiselelwa okungalungile.

Isibonelo, uma i-npm ithola ukuthi iziqondisi ezifana ne /usr/lib/node_modules or /root/.npm azibhalwa ngumsebenzisi wakho ojwayelekile, uzobona izinto ezihlobene nemvume ezimakwe ngokuthi “notOk” ngombala obomvu. Lokho kuyiphuzu eliqinile lokuthi i-npm yayiqhutshwa ngaphambilini njengempande noma nge sudo, ishiya amafayela aphethwe yizimpande avimba ukusebenza okuvamile.

Umyalo kadokotela ungaveza namathuluzi angekho alindelwe yi-npm, njenge-Git, edingwa ezinye izindlela ezisebenzisa ama-URL e-Git esikhundleni samaphakheji okubhalisa ashicilelwe. Uma i-Git ingafakiwe noma ingekho ku-PATH yakho, uzobona isexwayiso esikukhuthaza ukuthi uyifake bese uzama futhi.

Ngemva kokulungisa noma yiziphi izinkinga npm doctor imibiko, ukuyiphinda futhi kufanele kubonise zonke izimo eziluhlaza "ezilungile", okubonisa ukufakwa kwe-npm okunempilo. Phatha lo myalo njengokuhlola impilo okuyisisekelo noma nini lapho usola ukuthi ukucushwa kwe-npm kuhlelo lwakho lonke kungenzeka ukuthi kungemuva kwamaphutha angajwayelekile owabonayo ngesikhathi sokufakwa noma ukuhlolwa.

Indlela i-npm ecosystem engaba buthakathaka ngayo: izehlakalo ezidumile kanye nezingozi

Ngaphandle kwezinkinga zokucushwa kwendawo, kubalulekile ukuqonda ukuthi i-npm njenge-ecosystem inezingozi zayo zesakhiwo, eziqhutshwa yizihlahla ezinkulu ezixhomeke kuzo kanye nabanakekeli abazithandela kakhulu. Amaphrojekthi e-JavaScript yesimanje avame ukuletha amakhulu noma ngisho nezinkulungwane zamaphakheji, amaningi agcinwa ngumuntu oyedwa noma ababili ngesikhathi sabo sokuphumula.

Lokhu kuhlukana okukhulu kwenza kube nzima kakhulu ukubuyekeza ngesandla konke okuphelela kuhlelo lwakho lokugcina, okuvulela ithuba ukuhlaselwa kwe-supply chain ku-npm kanye nobuthakathaka obucashile. Iphakheji eyodwa esengozini noma elahliwe ingadlula kugrafu yokuxhomekeka futhi ithinte inani elikhulu lamaphrojekthi ngaphandle kokuba onjiniyela baqaphele ngokushesha.

Isibonelo esivelele salokhu kuntengantenga yisigameko sango-2016 esihilela iphakethe elincane elibizwa ngokuthi left-pad, eyayinemigqa ecishe ibe ngu-11 yekhodi. Inhloso yayo kuphela kwakuwukufaka izintambo ngakwesobunxele ngohlamvu kuze kube yilapho zifinyelela ubude obuthile, kodwa yayisetshenziswa, ngokuqondile nangokungaqondile, ngamaphakheji amaningi namathuluzi amakhulu njenge-Babel JavaScript compiler.

Ngemva kwengxabano phakathi kombhali no-npm, umgcini wanquma ukususa ukushicilela amaphakheji akhe amaningana, okuhlanganisa left-pad, kusukela kurejista. Ngenxa yokuthi i-npm ayizange igcine izithombe ezingaguquki zezinguqulo ezishicilelwe ngaleso sikhathi, ukususwa kwaphuka ngokushesha emhlabeni wonke okwakuncike kulezo zinguqulo eziqondile, kwashiya abathuthukisi bebambeke ekufakweni okwehlulekayo.

Ngesenzo esingakaze sibonwe ngaphambili, i-npm Inc. yabuyisela inguqulo yokugcina eyaziwayo ye left-pad bona ngokwabo, ngaphandle kwemvume yombhali, ukuze babuyisele imvelo esimweni sayo. Leso sinqumo sasiphikisana ngoba sasiphikisana nomqondo wokuthi ababhali balawula umjikelezo wokuphila kwamaphakheji abo, kodwa futhi sagcizelela ukuthi ingqalasizinda ebalulekile isithembele kangakanani kumamojula angaphandle angabalulekile.

Ngaphandle kwezigameko zokutholakala, kube nezimo eziningi ezigxile kwezokuphepha lapho amaphakheji athandwayo e-npm ebekwe engcupheni noma atholakale equkethe ubuthakathaka obukhulu. Lokhu kufaka phakathi izimo lapho abanakekeli babehlelwe khona emphakathini, ubunikazi bamaphakheji alahliwe buthathwa, noma iziphazamiso ezicashile zasetshenziswa ukuze kusetshenziswe ikhodi engadingekile.

Isibonelo esisodwa okuxoxwa ngaso kabanzi yi-2018 event-stream ukuyekethisa, lapho umhlaseli ethole khona ukulawula uhlelo lokusakaza oludumile futhi wafaka ikhodi ehlose ukweba imali yedijithali kuzinhlelo zokusebenza ezithintekile. Ngoba event-stream kwakuyindlela yokuthembela kwamanye amaphakheji amaningi, ikhodi enonya yasakazeka buthule ngamaketanga okuthembela ezinhlelweni zokukhiqiza.

Esinye isimo ubuthakathaka bokufakwa komyalo ngo-2019 ku coa, umsizi we-CLI osetshenziswa amathuluzi ahlukahlukene aziwayo. Ngaphansi kwezimo ezithile, okokufaka komsebenzisi okungahlanzwanga kahle kungaguqulwa kube yimiyalo yegobolondo engahleliwe, kuvulwe umnyango wokusetshenziswa okude uma ubuthakathaka buqalwe esimweni esibucayi.

Amalabhulali adumile afana axios futhi babe nobuthakathaka, njengezinkinga zesicelo sobugebengu eceleni kweseva (SSRF) ezivumela abahlaseli ukuthi baqondise kabusha amaseva ukuze benze izicelo ezinsizeni zangaphakathi. Ngisho nezinsiza ezivame kakhulu ezifana minimist zithintwe yiziphazamiso zokungcola kweprototype, okuvumela abahlaseli ukuthi baphazamise amaprototype ezinto futhi bashintshe ukuziphatha kohlelo lokusebenza ngezindlela ezicashile neziyingozi.

Isifundo esiyinhloko ukuthi ngisho namaphakheji adumile kakhulu noma abonakala engenangozi awaphephile ngokuzenzakalelayo; angasetshenziswa kabi, ashiywe, noma alungiswe kabi njenganoma iyiphi enye isofthiwe. Yingakho isimo sokuphepha esinempilo cishe ngo-npm sidinga kokubili amathuluzi obuchwepheshe (ukuhlolwa, ukuskena, ukukhiya) kanye nemikhuba yamasiko (izibuyekezo ezivamile, ukukhetha ngokucophelela ukuthembela, kanye nokukhetha ukubhala izinsiza ezilula endlini uma kungenzeka).

Ubuthakathaka ezindaweni zokuthuthukiswa uma kuqhathaniswa nokukhiqiza

Lapho onjiniyela beqala ukusebenza npm audit Kuphrojekthi, uhlu olude lobuthakathaka lungabonakala luyesabeka, kodwa akuzona zonke ezithinta uhlelo lwakho lokusebenza lokukhiqiza olusebenzayo. Izinkinga eziningi ezimakwe zitholakala kumathuluzi asetshenziswa kuphela ngesikhathi sokuthuthukiswa noma sokwakhiwa.

Umehluko oyinhloko ukhona phakathi kokuxhomekeka okumenyezelwe ngaphansi dependencies kanye nalabo abangaphansi devDependencies in package.json. Amaphakheji ku- devDependencies ngokuvamile zidingeka kuphela emisebenzini efana nokuhlanganisa, ukudlulisa, ukufaka i-linting, noma ukusebenzisa amaseva okuhlola, futhi azihloselwe ukuthunyelwa njengengxenye yephakheji yokugcina yokukhiqiza noma isikhathi sokusebenza seseva.

Isibonelo, ubuthakathaka kumathuluzi afana webpack-dev-server, @angular-devkit, noma vite ngokuvamile kubalulekile ngenkathi usathuthukisa endaweni, hhayi uma umkhiqizo wakho ususetshenzisiwe. Lawa maseva okuthuthukisa kanye namathuluzi okwakha angadalula izindawo zokuhlasela njengokuvuza kwekhodi ye-cross-origin noma ukuziphatha okufana ne-SSRF, kodwa kuphela uma iseva yokuthuthukisa isebenza futhi ifinyeleleka.

Ukugijima endaweni ecacile npm audit umbiko uzovame ukufaka kokubili ubuthakathaka besikhathi sokusebenza kanye nokuthuthukiswa kuphela, okubonisa izinkinga kumaphakheji afana brace-expansion, esbuild, Futhi webpack-dev-server. Ukuhlolwa kuzovame ukusikisela npm audit fix noma ngisho npm audit fix --force ukusheshisa izinguqulo, ngezinye izikhathi kudinga izibuyekezo ezinkulu kuzinhlaka ezifana ne-Angular ukuze kususwe izixwayiso.

Ukuze ubone ukuthi yikuphi ubuthakathaka obuthinta ngempela lokho okusetshenziswa ekukhiqizeni, ungaqalisa npm audit --production (noma sebenzisa okunconyiwe --omit=dev inketho ezinguqulweni ezintsha ze-npm). Uma lo myalo ubuyisela “ubuthakathaka obutholiwe obungu-0”, kusho ukuthi, ngokwazi kwedatha yezeluleko ye-npm, isethi yakho yokukhiqiza yokuxhomekeka okwamanje ayinazo izinkinga ezaziwayo.

Lokhu akusho ukuthi ungabunaki ubuthakathaka bonjiniyela kuphela unomphela, ngoba busengabeka imishini yabathuthukisi noma ikhodi yomthombo engozini ngenkathi besebenza kuphrojekthi. Kodwa-ke, ukuqonda umehluko kukuvumela ukuthi ubeke phambili izinto ezibalulekile: lungisa izinkinga zokukhiqiza ezinomthelela omkhulu kuqala, bese ubhekana nezinkinga zemvelo yentuthuko ngendlela ehleliwe esikhundleni sokusabela kuzo zonke izixwayiso njengokungathi zibaluleke ngokulinganayo.

Indlela ukulungiswa kwe-npm audit okusebenza ngayo nokuthi kufanele kugwenywe nini -force

Umyalo npm audit fix iklanyelwe ukuthuthukisa ngokuzenzakalelayo ukuncika okusengozini ngaphakathi kwamazinga enguqulo ephephile, kodwa akuyona inkinobho yomlingo exazulula konke ngaphandle kokushintshana. Idlula esihlahleni sakho sokuthembela ifuna amaphakheji anezinkinga ezaziwayo bese izama ukuwafaka ezinguqulweni ezilungisiwe ezihlala zihambisana neyakho ekhona package.json izingqinamba.

Isibonelo, uma ukuncika kuchazwe ngokuthi ^1.2.0, i-npm izozama ukushintshela kweyakamuva 1.x inguqulo equkethe ukulungiswa, ngaphandle kokugxumela ngqo ku- 2.x, okungaletha izinguquko eziphukayo. Lokhu kwenza npm audit fix kuphephile kakhulu kumaphrojekthi amaningi, njengoba kuhlonishwa imikhawulo yokuhumusha okunencazelo.

Nokho, ngezinye izikhathi, ama-patches atholakalayo kuphela asezinguqulweni ezintsha ezinkulu noma kuma-toolchain adinga ukuthuthukiswa okubanzi, okuyilapho i-npm isikisela ukusebenzisa npm audit fix --force. Leli fulegi litshela i-npm ukuthi ivunyelwe ukufaka izibuyekezo ezingase ziphule, okuhlanganisa amaphutha amakhulu enguqulo kanye nezinguquko ezishintshashintshayo kuzinhlaka noma amathuluzi okwakha.

Ukugijima ngokungaboni --force Kuphrojekthi enkulu noma yesikhathi esidlule kungaphula kalula ukwakheka noma kubangele ukuhlehla kwesikhathi sokusebenza okucashile, ngoba ukuncika ikhodi yakho ethembele kukho kungashintsha ukuziphatha noma ama-API. Cabanga ngakho njengokukhetha ukungena ekuthuthweni okuncane kwesitaki sakho, hhayi nje i-patch yokuphepha, ngakho-ke kufanele kwenziwe ngamanethi okuphepha okuhlola nokulawula inguqulo.

Kukhona futhi izimo lapho i-npm ingeke ikwazi ukulungisa ngokuzenzakalelayo zonke izithiyo, ngokuvamile ngoba ukuthuthukiswa kwenguqulo edingekayo kuzongqubuzana neminye imikhawulo kugrafu yakho yokuxhomekeka. Kulezo zimo, kungadingeka ukuthi ubuyekeze noma ufake amanye amalabhulali ngesandla, noma wamukele izinga lesikhashana lengozi kuze kube yilapho kushicilelwa i-patch engaqhekeki.

Isu elisebenzayo ukuqonda kuqala ukuthi yiziphi izithiyo ezithinta umkhiqizo, bese usebenzisa npm audit fix ngaphandle --force, futhi cabanga kuphela ngokuthuthukiswa okuphoqelelwe noma okukhulu ngemva kokuhlaziywa komthelela kanye nokuhlolwa okufanele. Ngaleyo ndlela ugcina isicelo sakho siphephile ngaphandle kokuphazamisa njalo i-codebase yakho ngegama lokufuna umbiko wokuhlolwa ohlanzekile ngokuphelele.

Ekugcineni, ukubhekana nobuthakathaka be-npm kuyinqubo eqhubekayo yokuhlola ubungozi, ukubeka phambili, kanye nokubuyekezwa okulawulwayo, hhayi umyalo wesikhathi esisodwa owusebenzisa bese uwukhohlwa. Inkinga ngayinye idinga ukukalwa ngobucayi, ukusetshenziswa kwangempela kokuqukethwe kwakho, kanye nezindleko zokuthuthukisa amaphakheji noma izintambo zamathuluzi ezithintekile.

Ukucabanga kabusha ukuthi udinga ukuthembela okungakanani kwe-npm

Enye yezindlela zokuphepha zesikhathi eside eziphumelela kakhulu nge-npm ukumane uthembele kumaphakheji ambalwa eqembu lesithathu noma kuphi lapho ungakwazi khona. Konke ukuncika okwengeziwe kwandisa indawo yakho yokuhlasela, umthwalo wokulungisa, kanye namathuba ezinkinga ezishintshayo ezimangazayo kamuva.

Abathuthukisi bavame ukufaka amaphakheji ngaphandle kokulula, noma ngabe ukusebenza kungasetshenziswa emigqeni embalwa yeJavaScript ecacile. Ngokuhamba kwesikhathi, lo mkhuba ungavimba umuthi wakho wokuthembela ngamamojula angasetshenziswa kakhulu, anganakekelwa kahle, noma athathelwe indawo kalula yizingcezu ezincane zekhodi yangaphakathi.

Ukunciphisa ukuncika kunezinzuzo eziningi ngale kokuphepha: amaphrojekthi amancane, izikhathi zokufaka nokwakha ngokushesha, izingxabano ezimbalwa zenguqulo, kanye nokulungisa amaphutha okulula lapho okuthile kuphuka. Igrafu yokuxhomekeka kwe-leaner yenza kube lula ukuhlola ukuthi yini ngempela engena kuhlelo lwakho lokusebenza, kunokuba uzulazule emakhasini amaphakheji esikhashana ongazange uwakhethe ngamabomu.

Ngokombono wengozi, izingxenye ezimbalwa ezihambayo zisho amathuba ambalwa amaphrojekthi ashiywe, abanakekeli abasengozini, noma ubuthakathaka obucashile ezinsizeni ezingacacile zokuthinta isitaki sakho. Ngisho noma ungakwazi ukugwema izinhlaka ezinkulu noma imitapo yolwazi eyinhloko, usengakhetha abasizi abancane abenza imisebenzi engabalulekile, evame ukubangela ingxenye emangalisayo yomsindo wokuhlola.

Isu lokuthembela kubantu abadala lihilela ukuhlola amaphakheji amasha ngokuhlolisisa, ukususa angasetshenziswanga ngezikhathi ezithile, nokukhetha imitapo yolwazi enakekelwa kahle nehlolwe kabanzi kunezixazululo ezikhethekile noma ezingenziwa kanye kuphela uma kungenzeka. Kuhlanganiswe nokusetshenziswa okuhle kwe npm audit, npm ci, kanye nokubuyekezwa okuvamile, le ndlela yokucabanga inganciphisa kakhulu ukuvama kanye nobunzima bezinkinga ezihlobene ne-npm obhekene nazo.

Ukulungisa amaphutha e-npm, amalogi, kanye nokufakwa okonakele

Ngisho noma unendawo elungiselelwe kahle kanye nomuthi wokuthembela ophansi, ekugcineni uzobhekana namaphutha e-npm adidayo avimba ukuhamba komsebenzi wakho ukubanda. Ukulungisa amaphutha ngempumelelo kuqala ngokuthola ulwazi olwengeziwe ngalokho i-npm ekwenzayo ngaphansi kwe-hood lapho umyalo wehluleka.

Indlela elula eyodwa ukwandisa ukuphindaphinda kwe-npm usebenzisa amafulegi afana --dd (noma --loglevel verbose), okunyathelisa izinyathelo ezinemininingwane zenqubo. Leli zinga lokubhalisa lingaveza ngqo ukuthi yikuphi ukusebenza okuhlulekile, yiliphi ifayela noma isiqondisi esibangele inkinga, noma yisiphi iskripthi kuchungechunge lwakho lokuxhomekeka esiphukayo.

Noma nini lapho umyalo wehluleka, i-npm ivame ukukutshela ukuthi igcine kuphi ifayela lelogi elinemininingwane eminingi, ngokuvamile ngaphansi kwesiqondisi esifana ~/.npm/_logs. Ukuvula leyo logi kukunikeza umkhondo wokulandelana kokufakwa noma ukusebenza kweskripthi, kufaka phakathi umkhondo we-stack, imininingwane yemvelo, kanye namaphutha esistimu angaphansi angaveli njalo kumphumela wephutha elifushane.

Okunye ukwehluleka kuvela emaphutheni akho package.json, njenge-JSON engavumelekile, amagama esikripthi angalungile, noma ububanzi benguqulo obungalungile. Kulezo zimo, ukuhlola kabusha ifayela ngokucophelela amaphutha e-syntax, amaphutha okubhala, noma ama-trailing comma kungaxazulula izinkinga ezibonakala ziyimfihlakalo ekuqaleni.

Ngezinye izikhathi, imbangela eyinhloko isezingeni lesistimu yokusebenza noma lamathuluzi: izinkinga zokufinyelela kwenethiwekhi, ukulungiswa kwe-DNS, imithetho yomlilo, noma iziqinisekiso ze-Git noma ze-GitHub ezingalungiselelwanga kahle. Isibonelo, uma ukuncika kudonswa ngqo endaweni yokugcina i-Git futhi i-Git ingekho noma ingalungiselelwanga kahle, i-npm izohluleka yize irejista ngokwayo ingafinyeleleka.

Izinkinga zokufakwa kokuxhomekeka zingavela futhi ekonakaleni node_modules isiqondisi noma i-npm cache, ikakhulukazi ngemva kokufakwa okuphazamisekile noma ukuthuthukiswa okuqediwe ingxenye. Uma usola inkohlakalo, kuvame ukuba lula ukuyisusa node_modules kanye nefayela lokukhiya, sula i-npm cache, bese ufaka kabusha, kunokuba uzame ukulungisa amaphakheji aphukile ngamanye endaweni yawo.

Indlela evamile yokutakula ukususa node_modules, sebenzisa umyalo wokuhlanza i-cache ngokuzithandela, bese usebenzisa npm install futhi ukuze sakhe kabusha umuthi wokuthembela kusukela ekuqaleni. Lokhu kusetha kabusha okunzima kuvame ukuxazulula ukuziphatha okungajwayelekile noma okungaguquki okungabanjwa ukuxazulula izinkinga okuvamile, ikakhulukazi ngemva kokushintsha amagatsha noma ukuhlanganisa izinguquko ezinkulu zokuncika.

Khumbula ukuthi akuwona wonke amaphutha abangelwa ngqo yi-npm uqobo; amanye avela ezikripthi ezisebenza ngamaphakeji ngesikhathi sokufakwa noma kuma-hook omjikelezo wokuphila wephrojekthi yakho. Amalogi e-verbose kanye ne-error stack traces kungakusiza ukuthi unqume ukuthi ubhekene nenkinga ye-npm emsulwa noma inkinga kuskripthi senkampani yangaphandle noma amathuluzi enziwe ngokwezifiso aqala nge-npm.

Sekukonke, ukuhlanganisa ukuloba okungcono, ukufunda ngokucophelela imiyalezo yamaphutha, kanye nokusetha kabusha ngezikhathi ezithile node_modules kuzokusiza ukuthi ululame ekuhlulekeni okuningi kwe-npm ngaphandle kokubhajwa emijikelezweni yokulinga nephutha engapheli. Ngokuhamba kwesikhathi, uzobona amaphethini aphindaphindayo—ukuthayipha kwe-JSON, izinkinga zemvume, amathuluzi angekho—okwenza iseshini elandelayo yokulungisa amaphutha isheshe kakhulu.

Ukuphatha i-npm ngempumelelo ekugcineni kumayelana nokuqonda kokubili izici zamathuluzi endawo kanye nezingozi ezibanzi zemvelo: kusukela ezinqubweni zokusebenzisa i-PowerShell kanye nezimvume ze-Unix, ngokufakwa okunqunyiwe kanye nokuhlolwa kobungozi, kuya ekukhetheni ukuncika okuqaphile kanye nokulungisa amaphutha okuhlelekile, umkhuba ngamunye omuhle owusebenzisayo unciphisa amathuba okuthi izinkinga ze-npm zizophazamisa umsebenzi wakho wokuthuthukisa.

noma u-Shai-Hulud a la cadena de suministro de npm
I-athikili ehlobene:
U-Shai-Hulud: el ataque que sacude la cadena de suministro de npm
Okuthunyelwe okuhlobene: