Slik løser du motorens 'node' er inkompatibel med 'Denne' modulfeil

Slik Loser Du Motorens Node Er Inkompatibel Med Denne Modulfeil



I Node.js er ' pakke ' inneholder alle de viktige filene til en modul. En modul tilsvarer et bibliotek som bygger en forbindelse med en applikasjon basert på dens kontekst. Alle Node.js-pakkene er ikke forhåndsdefinerte, de fleste av dem er eksterne som kan installeres i Node.js-applikasjonen via 'npm/yarn'-pakkebehandlingen.

Installasjonen av de eksterne pakkene er ganske enkel, men noen ganger kan brukeren møte noen feil mens han utfører denne oppgaven. Blant disse feilene er feilen 'Motor 'node' er Inkompatibel med 'Denne' Module»-feilen en av dem som kan løses ved å følge forskjellige teknikker.

Rask oversikt







Når motorens 'node' er inkompatibel med 'denne' modulfeilen?

'Noden' er inkompatibel med 'Denne' Modulfeilen oppstår på grunn av følgende årsaker:



Årsak 1: Nødvendig pakke er ikke kompatibel

Den vanligste årsaken til at 'noden' er inkompatibel med 'This'-modulfeilen, skyldes inkompatibiliteten mellom Node.js og den nødvendige pakkeversjonen. Det blir stort sett møtt når du distribuerer Node.js-applikasjonen til AWS.



Årsak 2: Eldre nodeversjon

En annen grunn er den eldre versjonen av Node.js. Det er stort sett møtt i Ubuntu-operativsystemet når brukeren prøver å oppdatere Node.js-versjonen flere ganger og også oppdaterer systemlagrene sammen med den. På grunn av denne grunn er ' apt ”-kommandoen vil starte en eldre Node.js-versjon hentet fra Debian-pakken og brukeren står overfor den spesielle feilen ovenfor.





Hvordan løser du at motorens 'node' er inkompatibel med 'Denne' modulfeil?

Denne delen viser alle mulige brukbare løsninger for å løse motorens 'node' er inkompatibel med 'Denne' modulfeil:

Løsning 1: Ignorer motorsjekken ved å bruke 'npm' og 'yarn'

Den første løsningen er ' ignorerer motorsjekken ' mens du installerer den angitte pakken ved å bruke ' npm ' eller ' garn ” pakkeforvaltere. For ' npm ' det kan gjøres ved å bruke ' -makt ' flagg og for ' garn ' denne oppgaven kan utføres ved å bruke ' –ignorer-motorer ' flagg.



Første trekk på ' npm ” pakkeansvarlig.

Syntaks (for NPM)

npm installere -- makt < pakke Navn >

I henhold til syntaksen ovenfor, ' -makt flagget legger til den spesifiserte pakken i Node.js-applikasjonen med kraft

Bruk nå syntaksen ovenfor for å installere en spesifikk pakke i den gjeldende Node.js-versjonen:

npm installere -- tvinge maskinskrift

I kommandoen ovenfor er 'typescript'-pakken installert og ignorerer gjeldende Node-versjonskompatibilitet.

Utgangen nedenfor viser at ' maskinskrift ”-pakken har blitt kraftig installert i den gjeldende Node.js-applikasjonen. Den viser også en advarsel på grunn av cachen. Utfør ' npm cache bekrefte ” kommando for å bekrefte om hurtigbufferen fungerte riktig eller ikke:

Ignorer nå motorsjekkene ved å bruke ' garn ' pakkebehandling ved hjelp av kommandoen nedenfor:

montering av garn -- overse - motorer

Kommandoen ovenfor ignorerer motorsjekkene og bekrefter at ' garn ” installerer ikke de valgfrie avhengighetene. « –ignorer-motorer flagget kjører kommandoen 'garninstallasjon' i frakoblet modus:

Kommandoen ovenfor oppretter en ' garn.lås ”-filen i Node.js-prosjektets hovedkatalog.

« garn ” Pakkebehandling krever følgende syntaks for å installere en pakke som ignorerer motorsjekkene:

Syntaks (for garn)

legg til garn < pakke Navn > -- overse - motorer

Bruk nå den ovenfor skrevne syntaksen for å installere en ' maskinskrift '-pakke globalt i et operativsystem:

yarn global add typescript -- overse - motorer

Utdataene nedenfor legger til typescript-prosjektet globalt i det gjeldende Windows-operativsystemet for alle Node.js-prosjekter:

Tips: Ignorer motorsjekker for alle kommandoer

Hvis brukeren vil ignorere motorsjekken for alle kommandoer, kjør kommandoen nedenfor sammen med ' ekte ' boolsk verdi:

yarn config set ignorer - motorer ekte

Kommandoen ovenfor forteller kompilatoren som ignorerer motorfeltet spesifisert i 'package.json'-filen:

« ignorere-motorer ”-sjekker er satt til sann for alle kommandoer. Nå kan brukeren installere en hvilken som helst spesifikk pakke i Node.js uten å spesifisere '–ignore-engines'-flagget:

Løsning 2: Deaktiver standard motorfelt ved å bruke filen 'package-lock.json'.

Den neste løsningen er å endre ' motor '-feltet fra ' package-lock.json ' fil. For å gjøre det, naviger først til hovedkatalogen til Node.js-prosjektet og åpne filen 'package-lock.json'.

Når den målrettede filen er åpnet, gå til ' motorer '-feltet og oppdater det på denne måten:

Trykk ' Ctrl+S ' for å lagre filen ovenfor. Endringen lar 'npm'-pakkebehandleren installere den nødvendige pakkeversjonen som passer for '>=14.17' Node.js-versjonen.

Løsning 3: Oppdater Node til siste versjon

En annen løsning er å oppdatere Node.js-versjonen. Oppdateringen av Node.js på alle operativsystemer er ganske enkel og kan utføres ved hjelp av veiledningene nedenfor:

  • Hvordan oppdatere nodeversjoner på Windows?
  • Hvordan oppgradere nodeversjon på Ubuntu?
  • Hvordan oppgradere Node.js til den nyeste versjonen på macOS?

Hva skal jeg gjøre hvis motor-'noden' er inkompatibel med 'Denne'-modulfeilen fortsatt vedvarer?

Hvis 'motornoden' er inkompatibel med 'Denne'-modulen'-feilen vedvarer etter å ha løst den med noen av løsningene ovenfor, slett ' node_modules ' mappe. 'node_modules'-mappen genereres automatisk når en tredjepartsmodul er installert. Den inneholder alle tredjepartspakkene som Node.js-prosjektet er avhengig av.

Dessuten, ' package-lock.json '-filen genereres også automatisk når en pakke er installert med 'npm'. Den holder oversikt over avhengigheter så vel som underavhengigheter som pakken avhenger av sammen med versjonene deres. Hvis pakken er installert med 'garn', er dette filnavnet ' garn.lås '.

Løsning: Fjern 'node_modules'-mappen og 'package-lock.json'-filen

Løsningen på den oppståtte feilen er å slette 'node_modules'-mappen, konfigurasjonsfilen 'package-lock.json/yarn.lock' og installere den nødvendige pakken på nytt.

I Linux , kan den eller de spesifiserte mappene eller filene ovenfor slettes ved hjelp av ' rm (fjern)' kommando:

rm - rf node_modules-pakken - låse. json //Slett mappe og fil

ls // Vis fil og kataloger

I kommandoen ovenfor ' -r ' flagget sletter den angitte mappen ' rekursivt ' inkludert alle underkatalogene og ' f ' flagget forteller tolken å utføre denne oppgaven ' kraftig ':

Utdataene viser at mappen 'node_modules' og filen 'package-lock.json/yarn.lock' er fjernet fullstendig:

I Windows , kan brukeren slette «node_modules»-mappen og «package-lock.json/yarn.lock»-filen ganske enkelt ved å trykke på «delete»-tasten eller bruke «delete»-alternativet fra rullegardinmenyen.

Det handler om å løse feilen 'Kan ikke finne modul' i Node.js.

Konklusjon

For å løse motoren ' node' er inkompatibel med 'Denne'-modulen ”-feil, ignorer motorsjekkene i henhold til den angitte pakkebehandlingen. For ' npm ' det kan gjøres ved å bruke ' -makt ' flagg, og for ' garn ' det kan utføres gjennom ' –ignorer-motorer ' sjekk flagg. I tillegg kan brukeren også løse feilen ved å endre ' motorer '-feltet i ' package-lock.json ”-fil eller oppgradering av Node-versjonen. Dette innlegget har diskutert alle mulige årsaker sammen med løsningen deres for å løse feilen 'Kan ikke finne modul' ved å bruke Node.js.