Jak vyřešit, že „uzel“ motoru není kompatibilní s chybou modulu „Tento“.

Jak Vyresit Ze Uzel Motoru Neni Kompatibilni S Chybou Modulu Tento



V Node.js je „ balík ” obsahuje všechny důležité soubory modulu. Modul odpovídá knihovně, která vytváří spojení s aplikací na základě jejího kontextu. Všechny balíčky Node.js nejsou předdefinované, většina z nich jsou externí, které lze nainstalovat do aplikace Node.js přes správce balíčků „npm/yarn“.

Instalace externích balíčků je poměrně jednoduchá, ale někdy může uživatel při provádění tohoto úkolu čelit některým chybám. Mezi těmito chybami je chyba „Uzel motoru“ je nekompatibilní s „tímto“ modulem. Jednou z nich je chyba, kterou lze vyřešit pomocí různých technik.

Rychlý přehled







Když je „uzel“ motoru nekompatibilní s „tímto“ modulem Vyskytne se chyba?

„Uzel“ není kompatibilní s modulem „Tento“ Chyba se vyskytuje z následujících důvodů:



Důvod 1: Požadovaný balíček není kompatibilní

Nejčastějším důvodem, proč je „uzel“ nekompatibilní s chybou modulu „Toto“, je nekompatibilita mezi Node.js a požadovanou verzí balíčku. Většinou se s tím potýká při nasazování aplikace Node.js do AWS.



Důvod 2: Starší verze uzlu

Dalším důvodem je starší verze Node.js. Nejčastěji se s ním v operačním systému Ubuntu potýká, když se uživatel pokouší aktualizovat verzi Node.js vícekrát a spolu s tím také aktualizuje systémová úložiště. Z tohoto důvodu „ apt ” spustí starší verzi Node.js převzatou z balíčku Debian a uživatel čelí výše uvedené konkrétní chybě.





Jak vyřešit, že „uzel“ motoru není kompatibilní s chybou modulu „Tento“?

Tato část uvádí všechna možná funkční řešení, jak vyřešit, že „uzel“ motoru není kompatibilní s chybou modulu „Toto“:

Řešení 1: Ignorujte kontrolu motoru pomocí „npm“ a „příze“

První řešení je „ ignorování kontroly motoru “ při instalaci určeného balíčku pomocí „ npm “ nebo „ příze “správci balíčků. Pro ' npm “ lze to provést pomocí „ -platnost “ vlajka a pro “ příze “ tuto úlohu lze provést pomocí „ –ignorujte motory “vlajka.



První pohyb na „ npm “ správce balíčků.

Syntaxe (pro NPM)

instalace npm -- platnost < balík název >

Podle výše uvedené syntaxe je „ -platnost ” příznak násilně přidá zadaný balíček do aplikace Node.js

Nyní použijte výše uvedenou syntaxi k instalaci konkrétního balíčku do aktuální verze Node.js:

instalace npm -- silový strojopis

Ve výše uvedeném příkazu je nainstalován balíček „typescript“, který ignoruje kompatibilitu aktuální verze uzlu.

Níže uvedený výstup ukazuje, že „ strojopis ” balíček byl vynuceně nainstalován do aktuální aplikace Node.js. Zobrazuje také varovnou zprávu kvůli mezipaměti. Proveďte „ ověření mezipaměti npm ” příkaz k ověření, zda mezipaměť fungovala správně nebo ne:

Nyní ignorujte kontroly motoru pomocí „ příze ” správce balíčků pomocí níže uvedeného příkazu:

instalace příze -- ignorovat - motory

Výše uvedený příkaz ignoruje kontroly motoru a potvrzuje, že „ příze ” nenainstaluje volitelné závislosti. ' –ignorujte motory příznak ” spouští příkaz “yarn install” v offline režimu:

Výše uvedený příkaz vytvoří „ příze.zámek ” v hlavním adresáři projektu Node.js.

' příze ” správce balíčků vyžaduje následující syntaxi k instalaci balíčku ignorujícího kontroly enginu:

Syntaxe (pro přízi)

přidat přízi < balík název > -- ignorovat - motory

Nyní použijte výše napsanou syntaxi k instalaci „ strojopis ” balíček globálně v operačním systému:

příze globální přidat strojopis -- ignorovat - motory

Níže uvedený výstup úspěšně přidá projekt strojopisu globálně do aktuálního operačního systému Windows pro všechny projekty Node.js:

Tip: Ignorujte kontroly motoru pro všechny příkazy

Pokud chce uživatel ignorovat kontrolu motoru pro všechny příkazy, spusťte níže uvedený příkaz spolu s „ skutečný ” booleovská hodnota:

nastavení konfigurace příze ignorovat - motory skutečný

Výše uvedený příkaz říká kompilátoru, že ignoruje pole motoru zadané v souboru „package.json“:

' ignorovat motory ” kontroly byly nastaveny na hodnotu true pro všechny příkazy. Nyní může uživatel nainstalovat libovolný konkrétní balíček do Node.js bez zadání příznaku „–ignore-engines“:

Řešení 2: Zakažte výchozí pole modulu pomocí souboru „package-lock.json“.

Dalším řešením je upravit „ motor ” pole z “ package-lock.json “. Chcete-li tak učinit, nejprve přejděte do hlavního adresáře projektu Node.js a otevřete soubor „package-lock.json“.

Jakmile je cílový soubor otevřen, přejděte na „ motory ” a aktualizujte jej tímto způsobem:

Lis ' Ctrl+S ” pro uložení výše uvedeného souboru. Úprava umožňuje správci balíčků „npm“ nainstalovat požadovanou verzi balíčku, která je vhodná pro verzi „>=14.17“ Node.js.

Řešení 3: Aktualizujte uzel na nejnovější verzi

Dalším řešením je aktualizace verze Node.js. Aktualizace Node.js na všech operačních systémech je poměrně snadná a lze ji provést pomocí níže uvedených průvodců:

  • Jak aktualizovat verze uzlů v systému Windows?
  • Jak upgradovat verzi uzlu na Ubuntu?
  • Jak upgradovat Node.js na nejnovější verzi v systému macOS?

Co dělat, pokud je „uzel“ enginu nekompatibilní s modulem „Tento“ Chyba stále přetrvává?

Pokud chyba „uzel motoru“ není kompatibilní s modulem „Tento“ modul přetrvává i po vyřešení pomocí některého z výše uvedených řešení, odstraňte „ node_modules “. Složka „node_modules“ se automaticky vygeneruje při instalaci modulu třetí strany. Obsahuje všechny balíčky třetích stran, na kterých závisí projekt Node.js.

Navíc, „ package-lock.json ” se také automaticky vygeneruje, když je balíček nainstalován s „npm“. Uchovává záznamy závislostí a také dílčích závislostí, na kterých balíček závisí, spolu s jejich verzemi. Pokud je balíček nainstalován s „přízí“, pak je tento název souboru „ příze.zámek “.

Řešení: Odstraňte složku „node_modules“ a soubor „package-lock.json“.

Řešením zjištěné chyby je odstranit složku „node_modules“, konfigurační soubor „package-lock.json/yarn.lock“ a znovu nainstalovat požadovaný balíček.

V Linuxu , výše specifikovanou složku nebo soubory lze smazat pomocí níže uvedeného „ rm (odstranit)“ příkaz:

rm - balíček rf node_modules - zámek. json //Odstranit složku a soubor

ls // Zobrazení souborů a adresářů

Ve výše uvedeném příkazu „ -r 'příznak odstraní zadanou složku' rekurzivně “ včetně všech jeho podadresářů a „ F 'příznak říká tlumočníkovi, aby provedl tento úkol' energicky “:

Výstup ukazuje, že složka „node_modules“ a soubor „package-lock.json/yarn.lock“ byly zcela odstraněny:

Ve Windows , uživatel může smazat složku „node_modules“ a soubor „package-lock.json/yarn.lock“ jednoduše stisknutím klávesy „delete“ nebo pomocí možnosti „delete“ z rozbalovací nabídky.

To je vše o vyřešení chyby „Cannot find module“ v Node.js.

Závěr

K vyřešení motoru' uzel“ není kompatibilní s modulem „Tento“. ” ignorujte kontroly motoru podle zadaného správce balíčků. Pro ' npm “ lze to provést pomocí „ -platnost “ vlajka a pro “ příze “ lze provést prostřednictvím „ –ignorujte motory “kontrolní příznak. Kromě toho může uživatel také vyřešit chybu úpravou „ motory 'pole' package-lock.json ” nebo upgrade verze Node. Tento příspěvek pojednává o všech možných důvodech spolu s jejich řešením k vyřešení chyby „Nelze najít modul“ pomocí Node.js.