Inštalácia externých balíkov je pomerne jednoduchá, ale niekedy sa môže stať, že používateľ pri vykonávaní tejto úlohy bude čeliť chybám. Medzi týmito chybami je chyba „Uzol motora“ je nekompatibilný s „týmto“ modulom. Jednou z nich je chyba, ktorú možno vyriešiť pomocou rôznych techník.
Rýchly prehľad
- Keď je „uzol“ motora nekompatibilný s modulom „Tento“ Vyskytla sa chyba?
- Ako vyriešiť, že „uzol“ motora nie je kompatibilný s chybou modulu „Tento“?
- Čo robiť, ak je „uzol“ motora nekompatibilný s „týmto“ modulom Chyba stále pretrváva?
- Záver
Keď je „uzol“ motora nekompatibilný s modulom „Tento“ Vyskytla sa chyba?
„Uzol“ nie je kompatibilný s modulom „Tento“ Chyba sa vyskytuje z nasledujúcich dôvodov:
Dôvod 1: Požadovaný balík nie je kompatibilný
Najčastejším dôvodom, prečo je „uzol“ nekompatibilný s chybou modulu „Tento“ je nekompatibilita medzi Node.js a požadovanou verziou balíka. Väčšinou sa s tým stretávame pri nasadzovaní aplikácie Node.js do AWS.
Dôvod 2: Staršia verzia uzla
Ďalším dôvodom je staršia verzia Node.js. Väčšinou sa s ním stretáva v operačnom systéme Ubuntu, keď sa používateľ pokúša aktualizovať verziu Node.js viackrát a súčasne s tým aktualizuje aj systémové úložiská. Z tohto dôvodu „ apt ” spustí staršiu verziu Node.js prevzatú z balíka Debian a používateľ čelí vyššie uvedenej konkrétnej chybe.
Ako vyriešiť, že „uzol“ motora nie je kompatibilný s chybou modulu „Tento“?
V tejto časti sú uvedené všetky možné funkčné riešenia na vyriešenie toho, že „uzol“ motora nie je kompatibilný s chybou modulu „Tento“:
- Riešenie 1: Ignorujte kontrolu motora pomocou „npm“ a „priadze“
- Riešenie 2: Zakážte predvolené polia motora pomocou súboru „package-lock.json“.
- Riešenie 3: Aktualizujte uzol na najnovšiu verziu
Riešenie 1: Ignorujte kontrolu motora pomocou „npm“ a „priadze“
Prvé riešenie je „ ignorovanie kontroly motora “ pri inštalácii určeného balíka pomocou „ npm “ alebo „ priadza “správcovia balíkov. Pre „ npm “ dá sa to urobiť pomocou „ – sila “ vlajka a pre “ priadza “ túto úlohu možno vykonať pomocou „ –ignorovať-motory “vlajka.
Prvý pohyb na „ npm “správca balíkov.
Syntax (pre NPM)
inštalácia npm -- sila < balík názov >Podľa vyššie uvedenej syntaxe „ – sila ” príznak násilne pridá zadaný balík do aplikácie Node.js
Teraz použite vyššie uvedenú syntax na inštaláciu konkrétneho balíka do aktuálnej verzie Node.js:
inštalácia npm -- silový strojopisVo vyššie uvedenom príkaze je nainštalovaný balík „typescript“, pričom sa ignoruje aktuálna kompatibilita verzie uzla.
Nižšie uvedený výstup ukazuje, že „ strojopis ” bol vynútene nainštalovaný v aktuálnej aplikácii Node.js. Zobrazuje tiež varovnú správu kvôli vyrovnávacej pamäti. Vykonajte „ overenie vyrovnávacej pamäte npm ” na overenie, či vyrovnávacia pamäť fungovala správne alebo nie:
Teraz ignorujte kontroly motora pomocou „ priadza ” správca balíkov pomocou nižšie uvedeného príkazu:
inštalácia priadze -- ignorovať - motoryVyššie uvedený príkaz ignoruje kontroly motora a potvrdzuje, že „ priadza ” nenainštaluje voliteľné závislosti. ' –ignorovať-motory Príznak ” spustí príkaz “yarn install” v režime offline:
Vyššie uvedený príkaz vytvorí „ priadza.zámok ” v hlavnom adresári projektu Node.js.
' priadza ” správca balíkov vyžaduje nasledujúcu syntax na inštaláciu balíka ignorujúcu kontroly motora:
Syntax (pre priadzu)
pridať priadzu < balík názov > -- ignorovať - motoryTeraz použite vyššie napísanú syntax na inštaláciu „ strojopis ” balík globálne v operačnom systéme:
priadza globálne pridať strojopis -- ignorovať - motoryNižšie uvedený výstup úspešne pridá projekt strojopisu globálne do aktuálneho operačného systému Windows pre všetky projekty Node.js:
Tip: Ignorujte kontroly motora pre všetky príkazy
Ak chce používateľ ignorovať kontrolu motora pre všetky príkazy, spustite nižšie uvedený príkaz spolu s „ pravda ” boolovská hodnota:
ignorovať konfiguráciu priadze - motory pravdaVyššie uvedený príkaz informuje kompilátor, že ignoruje pole motora zadané v súbore „package.json“:
' ignorovať-motory ” kontroly boli nastavené na hodnotu true pre všetky príkazy. Teraz môže používateľ nainštalovať akýkoľvek konkrétny balík do súboru Node.js bez zadania príznaku „–ignore-engines“:
Riešenie 2: Zakážte predvolené polia motora pomocou súboru „package-lock.json“.
Ďalším riešením je upraviť „ motora ” pole z poľa “ package-lock.json “. Ak to chcete urobiť, najprv prejdite do hlavného adresára projektu Node.js a otvorte súbor „package-lock.json“.
Po otvorení cieľového súboru prejdite na „ motory ” a aktualizujte ho takto:
Stlačte ' Ctrl+S ” na uloženie vyššie uvedeného súboru. Úprava umožňuje správcovi balíkov „npm“ nainštalovať požadovanú verziu balíka, ktorá je vhodná pre verziu Node.js „>=14.17“.
Riešenie 3: Aktualizujte uzol na najnovšiu verziu
Ďalším riešením je aktualizácia verzie Node.js. Aktualizácia Node.js na všetkých operačných systémoch je pomerne jednoduchá a možno ju vykonať pomocou nižšie uvedených sprievodcov:
- Ako aktualizovať verzie uzlov v systéme Windows?
- Ako inovovať verziu uzla na Ubuntu?
- Ako inovovať Node.js na najnovšiu verziu v systéme macOS?
Čo robiť, ak je „uzol“ motora nekompatibilný s „týmto“ modulom Chyba stále pretrváva?
Ak chyba „uzol motora“ nie je kompatibilná s modulom „Tento“ modul pretrváva aj po jej vyriešení ktorýmkoľvek z vyššie uvedených riešení, odstráňte „ node_modules “. Priečinok „node_modules“ sa automaticky vygeneruje, keď je nainštalovaný modul tretej strany. Obsahuje všetky balíčky tretích strán, na ktorých závisí projekt Node.js.
Navyše, „ package-lock.json ” sa automaticky vygeneruje aj pri inštalácii balíka s “npm”. Uchováva záznamy o závislostiach, ako aj o podzávislostiach, na ktorých balík závisí, spolu s ich verziami. Ak je balík nainštalovaný s „priadzou“, tento názov súboru je „ priadza.zámok “.
Riešenie: Odstráňte priečinok „node_modules“ a súbor „package-lock.json“.
Riešením vzniknutej chyby je odstrániť priečinok „node_modules“, konfiguračný súbor „package-lock.json/yarn.lock“ a znova nainštalovať požadovaný balík.
V Linuxe , vyššie uvedený priečinok alebo súbory je možné odstrániť pomocou nižšie uvedeného „ rm (odstrániť)“ príkaz:
rm - balík rf node_modules - zámok. json //Odstrániť priečinok a súborls // Zobrazenie súborov a adresárov
Vo vyššie uvedenom príkaze „ -r 'príznak vymaže zadaný priečinok' rekurzívne “ vrátane všetkých jeho podadresárov a „ f 'príznak hovorí tlmočníkovi, aby vykonal túto úlohu' násilne “:
Výstup ukazuje, že priečinok „node_modules“ a súbor „package-lock.json/yarn.lock“ boli úplne odstránené:
V systéme Windows , používateľ môže odstrániť priečinok „node_modules“ a súbor „package-lock.json/yarn.lock“ jednoducho stlačením klávesu „delete“ alebo použitím možnosti „delete“ z roletového menu.
To je všetko o vyriešení chyby „Nedá sa nájsť modul“ v Node.js.
Záver
Na vyriešenie motora“ uzol“ nie je kompatibilný s modulom „Tento“. “, ignorujte kontroly motora podľa zadaného správcu balíkov. Pre „ npm “ dá sa to urobiť pomocou „ – sila “ vlajka a pre “ priadza “ možno vykonať prostredníctvom „ –ignorovať-motory “kontrolný príznak. Okrem toho môže používateľ chybu vyriešiť aj úpravou „ motory 'pole ' package-lock.json ” alebo upgrade verzie uzla. Tento príspevok diskutoval o všetkých možných dôvodoch spolu s ich riešením na vyriešenie chyby „Nedá sa nájsť modul“ pomocou Node.js.