Hoe u kunt oplossen dat het ‘knooppunt’ van de engine niet compatibel is met de modulefout ‘Deze’

Hoe U Kunt Oplossen Dat Het Knooppunt Van De Engine Niet Compatibel Is Met De Modulefout Deze



In Node.js wordt de “ pakket ” bevat alle belangrijke bestanden van een module. Een module komt overeen met een bibliotheek die op basis van de context een verbinding opbouwt met een applicatie. Alle Node.js-pakketten zijn niet vooraf gedefinieerd, de meeste zijn externe pakketten die in de Node.js-applicatie kunnen worden geïnstalleerd via de pakketbeheerder “npm/yarn”.

De installatie van de externe pakketten is vrij eenvoudig, maar soms kan de gebruiker tijdens het uitvoeren van deze taak met enkele fouten te maken krijgen. Onder deze fouten is de fout “Engine “node” is Incompatibel met “This” Module” er één die kan worden opgelost door verschillende technieken te volgen.

Snel overzicht







Wanneer het motorknooppunt incompatibel is met deze module, treedt er een fout op?

Het “knooppunt” is incompatibel met “Deze” Modulefout treedt op vanwege de volgende redenen:



Reden 1: Vereist pakket is niet compatibel

De meest voorkomende reden dat het “knooppunt” niet compatibel is met de modulefout “Deze” is te wijten aan de incompatibiliteit tussen Node.js en de vereiste pakketversie. Dit komt vooral voor bij het implementeren van de Node.js-applicatie op AWS.



Reden 2: oudere knooppuntversie

Een andere reden is de oudere versie van Node.js. Het komt vooral voor in het Ubuntu-besturingssysteem wanneer de gebruiker de Node.js-versie meerdere keren probeert bij te werken en daarmee ook de systeemopslagplaatsen bijwerkt. Om deze reden is de “ geschikt De opdracht start een oudere Node.js-versie uit het Debian-pakket en de gebruiker wordt geconfronteerd met de bovenstaande specifieke fout.





Hoe kan ik oplossen dat het 'knooppunt' van de engine incompatibel is met de modulefout 'Deze'?

In deze sectie worden alle mogelijke werkbare oplossingen genoemd om op te lossen dat het 'knooppunt' van de engine incompatibel is met de modulefout 'Deze':

Oplossing 1: negeer de motorcontrole met “npm” en “yarn”

De eerste oplossing is “ het negeren van de motorcontrole ” terwijl u het opgegeven pakket installeert met behulp van de “ npm ' of ' garen pakketbeheerders. Voor ' npm “Het kan worden gedaan met behulp van de “ -kracht 'vlag en voor' garen ” deze taak kan worden uitgevoerd met behulp van de “ –negeer-motoren vlag.



Ga eerst naar de “ npm ' pakket manager.

Syntaxis(voor NPM)

npm installeren -- kracht < pakket naam >

Volgens de bovenstaande syntaxis is de “ -kracht ' flag voegt het opgegeven pakket krachtig toe aan de Node.js-toepassing

Gebruik nu de bovenstaande syntaxis om een ​​specifiek pakket in de huidige Node.js-versie te installeren:

npm installeren -- typoscript forceren

In de bovenstaande opdracht wordt het “typescript” -pakket geïnstalleerd, waarbij de huidige compatibiliteit van de Node-versie wordt genegeerd.

De onderstaande uitvoer laat zien dat de “ typoscript ”-pakket is krachtig geïnstalleerd in de huidige Node.js-applicatie. Er wordt ook een waarschuwingsbericht weergegeven vanwege de cache. Voer de “ npm cache verifiëren 'opdracht om te verifiëren of de cache goed werkte of niet:

Negeer nu de motorcontroles met behulp van de “ garen ”pakketbeheerder met behulp van de onderstaande opdracht:

garen installeren -- negeren - motoren

Het bovenstaande commando negeert de motorcontroles en bevestigt dat de “ garen ” installeert de optionele afhankelijkheden niet. De ' –negeer-motoren ” flag voert de opdracht “yarn install” uit in de offline modus:

Met het bovenstaande commando wordt een “ garen.slot ”-bestand in de hoofdmap van het Node.js-project.

De ' garen 'Pakketbeheer vereist de volgende syntaxis om een ​​pakket te installeren, waarbij de enginecontroles worden genegeerd:

Syntaxis(voor garen)

garen toevoegen < pakket naam > -- negeren - motoren

Gebruik nu de hierboven geschreven syntaxis om een ​​“ typoscript ” wereldwijd verpakken in een besturingssysteem:

garen globaal typoscript toevoegen -- negeren - motoren

Met de onderstaande uitvoer wordt het typescript-project wereldwijd succesvol toegevoegd aan het huidige Windows-besturingssysteem voor alle Node.js-projecten:

Tip: Negeer enginecontroles voor alle opdrachten

Als de gebruiker de enginecontrole voor alle opdrachten wil negeren, voer dan het onderstaande commando uit samen met de “ WAAR ” Booleaanse waarde:

garenconfiguratieset negeren - motoren WAAR

Het bovenstaande commando vertelt de compiler dat het engineveld dat is opgegeven in het bestand “package.json” wordt genegeerd:

De ' negeer-motoren '-controles zijn voor alle opdrachten op True ingesteld. Nu kan de gebruiker elk specifiek pakket in Node.js installeren zonder de vlag “–ignore-engines” op te geven:

Oplossing 2: schakel standaard enginevelden uit met behulp van het bestand “package-lock.json”.

De volgende oplossing is het wijzigen van de “ motor ” veld uit de “ pakket-lock.json ' bestand. Om dit te doen, navigeert u eerst naar de hoofdmap van het Node.js-project en opent u het bestand “package-lock.json”.

Zodra het beoogde bestand is geopend, gaat u naar de “ motoren ”-veld en update het op deze manier:

Druk op ' Ctrl+S ” om het bovenstaande bestand op te slaan. Door de wijziging kan de “npm” pakketbeheerder de vereiste pakketversie installeren die geschikt is voor de “>=14.17” Node.js-versie.

Oplossing 3: update het knooppunt naar de nieuwste versie

Een andere oplossing is het updaten van de Node.js-versie. Het updaten van Node.js op alle besturingssystemen is vrij eenvoudig en kan worden uitgevoerd met behulp van de onderstaande handleidingen:

  • Hoe knooppuntversies op Windows bijwerken?
  • Hoe kan ik de knooppuntversie op Ubuntu upgraden?
  • Hoe Node.js te upgraden naar de nieuwste versie op macOS?

Wat te doen als de engine-node incompatibel is met deze modulefout blijft bestaan?

Als de “engine “node” incompatibel is met de “This” module” fout blijft bestaan ​​nadat deze met een van de bovenstaande oplossingen is opgelost, verwijder dan de “ knooppunt_modules map. De map “node_modules” wordt automatisch gegenereerd wanneer een module van derden wordt geïnstalleerd. Het bevat alle pakketten van derden waarvan het Node.js-project afhankelijk is.

Bovendien is de “ pakket-lock.json ”-bestand wordt ook automatisch gegenereerd wanneer een pakket wordt geïnstalleerd met “npm”. Het houdt de afhankelijkheden bij, evenals de subafhankelijkheden waarvan het pakket afhankelijk is, samen met hun versies. Als het pakket is geïnstalleerd met “yarn” dan is deze bestandsnaam “ garen.slot ”.

Oplossing: Verwijder de map “node_modules” en het bestand “package-lock.json”.

De oplossing voor de aangetroffen fout is om de map “node_modules” en het configuratiebestand “package-lock.json/yarn.lock” te verwijderen en het vereiste pakket opnieuw te installeren.

Onder Linux , kunnen de hierboven gespecificeerde map of bestanden worden verwijderd met behulp van de hieronder vermelde “ rm (verwijderen)” commando:

rm - rf node_modules-pakket - slot. json //Verwijder map en bestand

ls // Bestanden en mappen weergeven

In het bovenstaande commando wordt de “ -R ” flag verwijdert de opgegeven map “ recursief ” inclusief alle submappen en de “ F ” flag vertelt de tolk om deze taak uit te voeren “ krachtig ”:

De uitvoer laat zien dat de map “node_modules” en het bestand “package-lock.json/yarn.lock” volledig zijn verwijderd:

In Windows , kan de gebruiker de map “node_modules” en het bestand “package-lock.json/yarn.lock” verwijderen door simpelweg op de “delete”-toets te drukken of door de “delete”-optie in het vervolgkeuzemenu te gebruiken.

Dat gaat allemaal over het oplossen van de fout ‘Kan module niet vinden’ in Node.js.

Conclusie

Om de motor op te lossen “ node” is incompatibel met “Deze” module ”-fout, negeer de enginecontroles volgens de opgegeven pakketbeheerder. Voor ' npm “Het kan worden gedaan met behulp van de “ -kracht 'vlag, en voor' garen ” het kan worden uitgevoerd via de “ –negeer-motoren 'controleer vlag. Bovendien kan de gebruiker de fout ook oplossen door de “ motoren “veld van de” pakket-lock.json ”-bestand of het upgraden van de Node-versie. In dit bericht zijn alle mogelijke redenen besproken, samen met hun oplossing om de fout ‘Kan module niet vinden’ op te lossen met Node.js.