Hur man löser motorns 'nod' är inkompatibel med 'denna' modulfel

Hur Man Loser Motorns Nod Ar Inkompatibel Med Denna Modulfel



I Node.js, ' paket ” innehåller alla viktiga filer i en modul. En modul motsvarar ett bibliotek som bygger en koppling med en applikation utifrån dess kontext. Alla Node.js-paket är inte fördefinierade, de flesta av dem är externa som kan installeras i Node.js-applikationen via pakethanteraren 'npm/yarn'.

Installationen av de externa paketen är ganska enkel, men ibland kan användaren möta vissa fel när de utför denna uppgift. Bland dessa fel är felet 'Motornod' är inkompatibelt med 'denna' modul' ett av dem som kan lösas genom att följa olika tekniker.

Snabb översikt







När motorns 'nod' är inkompatibel med 'denna' modulfel uppstår?

'Noden' är inkompatibel med 'Denna' Modulfel uppstår på grund av följande orsaker:



Orsak 1: Det obligatoriska paketet är inte kompatibelt

Det vanligaste skälet till att 'noden' är inkompatibel med 'This'-modulfelet beror på inkompatibiliteten mellan Node.js och den obligatoriska paketversionen. Det är mestadels när du distribuerar Node.js-applikationen till AWS.



Orsak 2: Äldre nodversion

En annan anledning är den äldre versionen av Node.js. Det möts mest av operativsystemet Ubuntu när användaren försöker uppdatera Node.js-versionen flera gånger och även uppdaterar systemförråden tillsammans med den. På grund av denna anledning har ' benägen ”-kommandot startar en äldre Node.js-version hämtad från Debian-paketet och användaren möter ovanstående specifika fel.





Hur löser man att motorns 'nod' är inkompatibel med 'denna' modulfel?

Det här avsnittet tar upp alla möjliga fungerande lösningar för att lösa motorns 'nod' är inkompatibel med 'Detta' modulfel:

Lösning 1: Ignorera motorkontrollen med 'npm' och 'yarn'

Den första lösningen är ' ignorerar motorkontrollen ' medan du installerar det angivna paketet med ' npm ' eller ' garn ” pakethanterare. För ' npm ' det kan göras med ' -tvinga ' flagga och för ' garn ' denna uppgift kan utföras med hjälp av ' –ignorera-motorer ' flagga.



Första steget på ' npm ” pakethanterare.

Syntax (för NPM)

npm installera -- tvinga < paket namn >

Enligt ovanstående syntax, ' -tvinga ” flaggan lägger till det angivna paketet i Node.js-applikationen med kraft

Använd nu ovanstående syntax för att installera ett specifikt paket i den aktuella Node.js-versionen:

npm installera -- tvinga maskinskriven

I kommandot ovan installeras 'typescript'-paketet och ignorerar den aktuella nodversionens kompatibilitet.

Utdata nedan visar att ' maskinskriven ”-paketet har tvångsinstallerats i den aktuella Node.js-applikationen. Den visar också ett varningsmeddelande på grund av cachen. Utför ' npm cache verifiera ” kommando för att verifiera om cachen fungerade korrekt eller inte:

Ignorera nu motorkontrollerna med ' garn ” pakethanteraren med hjälp av det nedan angivna kommandot:

installera garn -- ignorera - motorer

Kommandot ovan ignorerar motorkontrollerna och bekräftar att ' garn ” installerar inte de valfria beroenden. den ' –ignorera-motorer flaggan kör kommandot 'garninstallation' i offlineläge:

Kommandot ovan skapar en ' garnlås ”-filen i Node.js-projektets huvudkatalog.

den ' garn ” Pakethanteraren kräver följande syntax för att installera ett paket som ignorerar motorkontrollerna:

Syntax (för garn)

garn lägga till < paket namn > -- ignorera - motorer

Använd nu den ovan skrivna syntaxen för att installera en ' maskinskriven ”-paket globalt i ett operativsystem:

garn globalt lägg till typskript -- ignorera - motorer

Utdata nedan lägger framgångsrikt till typskriptprojektet globalt i det nuvarande Windows-operativsystemet för alla Node.js-projekt:

Tips: Ignorera motorkontroller för alla kommandon

Om användaren vill ignorera motorkontrollen för alla kommandon kör du kommandot nedan tillsammans med ' Sann ” booleskt värde:

yarn config set ignore - motorer Sann

Ovanstående kommando talar om för kompilatorn som ignorerar motorfältet som anges i filen 'package.json':

den ' ignorera-motorer ”-kontroller har satts till sant för alla kommandon. Nu kan användaren installera vilket specifikt paket som helst i Node.js utan att ange flaggan '–ignore-engines':

Lösning 2: Inaktivera standardmotorfält med hjälp av filen 'package-lock.json'.

Nästa lösning är att ändra ' motor ' fältet från ' package-lock.json ' fil. För att göra det, navigera först till huvudkatalogen för Node.js-projektet och öppna filen 'package-lock.json'.

När den riktade filen har öppnats flytta till ' motorer ' och uppdatera det på detta sätt:

Tryck ' Ctrl+S ” för att spara filen ovan. Ändringen tillåter 'npm'-pakethanteraren att installera den nödvändiga paketversionen som är lämplig för '>=14.17' Node.js-versionen.

Lösning 3: Uppdatera Node till senaste versionen

En annan lösning är att uppdatera versionen av Node.js. Uppdateringen av Node.js på alla operativsystem är ganska enkel och kan utföras med hjälp av nedan angivna guider:

  • Hur uppdaterar jag nodversioner på Windows?
  • Hur uppgraderar jag nodversion på Ubuntu?
  • Hur uppgraderar jag Node.js till den senaste versionen på macOS?

Vad ska man göra om motorns 'nod' är inkompatibel med 'det här' modulfelet fortfarande kvarstår?

Om 'motornoden' är inkompatibel med 'Denna' modul'-felet kvarstår efter att ha löst det med någon av ovanstående lösningar, radera sedan ' node_modules ' mapp. Mappen 'node_modules' genereras automatiskt när en tredjepartsmodul installeras. Den innehåller alla tredjepartspaket som Node.js-projektet är beroende av.

Dessutom har ' package-lock.json ”-fil genereras också automatiskt när ett paket installeras med ”npm”. Det håller register över beroenden såväl som underberoenden som paketet beror på tillsammans med deras versioner. Om paketet är installerat med 'garn' är detta filnamn ' garnlås ”.

Lösning: Ta bort mappen 'node_modules' och filen 'package-lock.json'.

Lösningen på det påträffade felet är att ta bort mappen 'node_modules', konfigurationsfilen 'package-lock.json/yarn.lock' och installera det nödvändiga paketet igen.

I Linux , kan den eller de ovan angivna mappen eller filerna raderas med hjälp av nedan angivna ' rm (ta bort)” kommando:

rm - rf node_modules paket - låsa. json //Ta bort mapp och fil

ls // Visa fil och kataloger

I kommandot ovan visas ' -r ' flaggan tar bort den angivna mappen ' rekursivt ' inklusive alla dess underkataloger och ' f ' flaggan talar om för tolken att utföra denna uppgift ' kraftfullt ”:

Utdata visar att mappen 'node_modules' och filen 'package-lock.json/yarn.lock' har tagits bort helt:

I Windows , kan användaren ta bort mappen 'node_modules' och filen 'package-lock.json/yarn.lock' genom att helt enkelt trycka på 'delete'-tangenten eller använda alternativet 'delete' från rullgardinsmenyn.

Det handlar om att lösa felet 'Kan inte hitta modulen' i Node.js.

Slutsats

För att lösa motorn ' node' är inkompatibel med modulen 'This'. ”-fel, ignorera motorkontrollerna enligt den angivna pakethanteraren. För ' npm ' det kan göras med ' -tvinga ' flagga och för ' garn ' det kan utföras genom ' –ignorera-motorer ” kontrollera flaggan. Dessutom kan användaren också lösa felet genom att ändra ' motorer ' fältet i ' package-lock.json ”-fil eller uppgradering av Node-versionen. Det här inlägget har diskuterat alla möjliga orsaker tillsammans med deras lösning för att lösa felet 'Kan inte hitta modulen' med Node.js.