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?
- Jak vyřešit, že „uzel“ motoru není kompatibilní s chybou modulu „Tento“?
- Co dělat, pokud je „uzel“ enginu nekompatibilní s modulem „Tento“ Chyba stále přetrvává?
- Závěr
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“
- Řešení 2: Zakažte výchozí pole modulu pomocí souboru „package-lock.json“.
- Řešení 3: Aktualizujte uzel na nejnovější verzi
Ř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ý strojopisVe 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 - motoryVýš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 - motoryNyní 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 - motoryNíž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 souborls // 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.