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?
- Hvordan løser du at motorens 'node' er inkompatibel med 'Denne' modulfeil?
- Hva skal jeg gjøre hvis motor-'noden' er inkompatibel med 'Denne'-modulfeilen fortsatt vedvarer?
- Konklusjon
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'
- Løsning 2: Deaktiver standard motorfelt ved å bruke filen 'package-lock.json'.
- Løsning 3: Oppdater Node til siste versjon
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 maskinskriftI 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 - motorerKommandoen 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 - motorerBruk nå den ovenfor skrevne syntaksen for å installere en ' maskinskrift '-pakke globalt i et operativsystem:
yarn global add typescript -- overse - motorerUtdataene 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 ekteKommandoen 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 fills // 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.