Paano Lutasin ang Engine 'node' ay Hindi tugma sa 'This' Module Error

Paano Lutasin Ang Engine Node Ay Hindi Tugma Sa This Module Error



Sa Node.js, ang “ pakete ” naglalaman ng lahat ng mahahalagang file ng isang module. Ang isang module ay tumutugma sa isang library na bumubuo ng isang koneksyon sa isang application batay sa konteksto nito. Ang lahat ng mga package ng Node.js ay hindi paunang tinukoy, karamihan sa mga ito ay mga panlabas na maaaring i-install sa Node.js application sa pamamagitan ng 'npm/yarn' package manager.

Ang pag-install ng mga panlabas na pakete ay medyo simple ngunit kung minsan ang gumagamit ay maaaring makaharap ng ilang mga error habang ginagawa ang gawaing ito. Kabilang sa mga error na ito, ang 'Engine 'node' ay Incompatible sa 'This' Module' error ay isa sa mga ito na maaaring malutas sa pamamagitan ng pagsunod sa iba't ibang mga diskarte.

Mabilis na Balangkas







Kapag ang 'node' ng Engine ay Hindi Tugma sa 'Ito' na Error sa Module?

Ang 'node' ay hindi tugma sa 'Ito' na error sa Module ay nangyayari dahil sa mga sumusunod na dahilan:



Dahilan 1: Hindi Compatible ang Kinakailangang Package

Ang pinakakaraniwang dahilan na ang 'node' ay hindi tugma sa 'Ito' na error sa module ay dahil sa hindi pagkakatugma sa pagitan ng Node.js at ng kinakailangang bersyon ng package. Ito ay kadalasang nahaharap habang nagde-deploy ng Node.js application sa AWS.



Dahilan 2: Mas lumang Bersyon ng Node

Ang isa pang dahilan ay ang mas lumang bersyon ng Node.js. Ito ay kadalasang nahaharap sa operating system ng Ubuntu kapag sinubukan ng user na i-update ang bersyon ng Node.js nang maraming beses at ina-update din ang mga repository ng system kasama nito. Dahil dito, ang ' apt Ang utos ng ” ay magsisimula ng mas lumang bersyon ng Node.js na kinuha mula sa pakete ng Debian at nahaharap ang user sa partikular na error sa itaas.





Paano Lutasin ang Engine 'node' ay Hindi Katugma sa 'This' Module Error?

Inililista ng seksyong ito ang lahat ng posibleng maisasagawang solusyon upang malutas ang 'node' ng engine na hindi tugma sa error sa module na 'Ito':

Solusyon 1: Huwag pansinin ang Engine Check Gamit ang 'npm' at 'yarn'

Ang unang solusyon ay ' hindi pinapansin ang engine check ” habang ini-install ang tinukoy na pakete gamit ang “ npm 'o' sinulid ” mga manager ng package. para sa ' npm 'Maaari itong gawin gamit ang' -puwersa 'bandila at para sa' sinulid 'Ang gawaing ito ay maaaring isagawa gamit ang ' –ignore-engines ' bandila.



Unang hakbang sa ' npm ” manager ng package.

Syntax(Para sa NPM)

pag-install ng npm -- puwersa < pakete pangalan >

Ayon sa syntax sa itaas, ang ' -puwersa ” idinaragdag ng flag ang tinukoy na package sa application na Node.js nang pilit

Ngayon gamitin ang syntax sa itaas upang mag-install ng isang partikular na pakete sa kasalukuyang bersyon ng Node.js:

pag-install ng npm -- pilitin ang typescript

Sa utos sa itaas, naka-install ang package na 'typescript' na hindi pinapansin ang kasalukuyang compatibility ng bersyon ng Node.

Ang output sa ibaba ay nagpapakita na ang ' typescript ” package ay pilit na na-install sa kasalukuyang Node.js application. Nagpapakita rin ito ng mensahe ng babala dahil sa cache. Isagawa ang ' pag-verify ng npm cache ” utos upang i-verify kung ang cache ay gumana nang maayos o hindi:

Ngayon huwag pansinin ang mga pagsusuri sa makina gamit ang ' sinulid ” package manager sa tulong ng nakasaad sa ibaba na utos:

pag-install ng sinulid -- Huwag pansinin - mga makina

Ang utos sa itaas ay binabalewala ang mga pagsusuri sa makina at kinukumpirma na ang ' sinulid ” ay hindi nag-i-install ng mga opsyonal na dependencies. Ang ' –ignore-engines Ang ” flag ay nagpapatakbo ng command na “yarn install” sa offline mode:

Ang utos sa itaas ay lumilikha ng ' sinulid.kandado ” file sa pangunahing direktoryo ng proyekto ng Node.js.

Ang ' sinulid ” Ang manager ng package ay nangangailangan ng sumusunod na syntax upang mag-install ng isang package na hindi pinapansin ang mga pagsusuri sa engine:

Syntax(Para sa sinulid)

dagdag na sinulid < pakete pangalan > -- Huwag pansinin - mga makina

Ngayon gamitin ang nakasulat sa itaas na syntax upang mag-install ng ' typescript ” package sa buong mundo sa isang operating system:

yarn global add typescript -- Huwag pansinin - mga makina

Matagumpay na naidagdag ng output sa ibaba ang typescript project sa buong mundo sa kasalukuyang operating system ng Windows para sa lahat ng proyekto ng Node.js:

Tip: Huwag pansinin ang Mga Pagsusuri ng Engine Para sa lahat ng Mga Utos

Kung nais ng user na huwag pansinin ang engine check para sa lahat ng mga utos pagkatapos ay patakbuhin ang nasa ibaba na utos kasama ang ' totoo ” halaga ng boolean:

yarn config set huwag pansinin - mga makina totoo

Ang command sa itaas ay nagsasabi sa compiler na binabalewala ang field ng engine na tinukoy sa 'package.json' na file:

Ang ' huwag pansinin-engine ” ang mga tseke ay naitakda sa true para sa lahat ng command. Ngayon ang user ay maaaring mag-install ng anumang partikular na package sa Node.js nang hindi tinukoy ang flag na “–ignore-engines”:

Solusyon 2: I-disable ang Default Engine Fields Gamit ang “package-lock.json” File

Ang susunod na solusyon ay baguhin ang ' makina ” field mula sa “ package-lock.json ” file. Upang gawin ito, mag-navigate muna sa pangunahing direktoryo ng proyektong Node.js at buksan ang 'package-lock.json' na file.

Kapag nabuksan ang target na file, lumipat sa ' mga makina ” field at i-update ito sa ganitong paraan:

Pindutin ang ' Ctrl+S ” para i-save ang file sa itaas. Ang pagbabago ay nagbibigay-daan sa 'npm' package manager na i-install ang kinakailangang bersyon ng package na angkop para sa '>=14.17' na bersyon ng Node.js.

Solusyon 3: I-update ang Node sa Pinakabagong Bersyon

Ang isa pang solusyon ay i-update ang bersyon ng Node.js. Ang pag-update ng Node.js sa lahat ng operating system ay medyo madali at maaaring isagawa sa tulong ng mga gabay na nakasaad sa ibaba:

  • Paano Mag-update ng Mga Bersyon ng Node sa Windows?
  • Paano Mag-upgrade ng Bersyon ng Node sa Ubuntu?
  • Paano i-upgrade ang Node.js sa Pinakabagong Bersyon sa macOS?

Ano ang Dapat Gawin kung ang 'node' ng Engine ay Hindi Tugma sa 'Ito' na Error sa Module Patuloy pa rin?

Kung ang 'engine 'node' ay hindi tugma sa 'This' module na error ay nagpapatuloy pagkatapos malutas ito sa alinman sa mga solusyon sa itaas pagkatapos ay tanggalin ang ' node_modules ” folder. Awtomatikong bubuo ang folder na 'node_modules' kapag na-install ang isang third-party na module. Naglalaman ito ng lahat ng mga third-party na pakete kung saan nakasalalay ang proyekto ng Node.js.

Bukod dito, ang ' package-lock.json ” file ay awtomatikong bumubuo din kapag ang isang pakete ay naka-install na may 'npm'. Pinapanatili nito ang talaan ng mga dependency pati na rin ang mga sub-dependencies kung saan nakasalalay ang package kasama ng kanilang mga bersyon. Kung ang package ay naka-install na may 'yarn' kung gayon ang pangalan ng file na ito ay ' sinulid.kandado ”.

Solusyon: Alisin ang “node_modules” Folder at “package-lock.json” File

Ang solusyon sa nakatagpo na error ay tanggalin ang folder na 'node_modules', configuration file na 'package-lock.json/yarn.lock' at i-install muli ang kinakailangang package.

Sa Linux , ang tinukoy sa itaas na folder o mga file ay maaaring tanggalin sa tulong ng nakasaad sa ibaba na ' rm (alisin)” utos:

rm - rf node_modules package - kandado. json // Tanggalin ang Folder at File

ls // Display File at Mga Direktoryo

Sa utos sa itaas ang ' -r ' tinatanggal ng bandila ang tinukoy na folder ' recursively ” kasama ang lahat ng mga subdirectory nito at ang “ f ' sinasabi ng bandila sa interpreter na gawin ang gawaing ito ' pilit ”:

Ipinapakita ng output na ang folder na 'node_modules' at ang file na 'package-lock.json/yarn.lock' ay ganap na naalis:

Sa Windows , maaaring tanggalin ng user ang 'node_modules' na folder at ang 'package-lock.json/yarn.lock' na file sa pamamagitan lamang ng pagpindot sa 'delete' key o gamit ang 'delete' na opsyon mula sa drop-down na menu.

Iyon lang ang tungkol sa pagresolba sa error na 'Hindi mahanap ang module' sa Node.js.

Konklusyon

Upang malutas ang makina ' node' ay hindi tugma sa 'This' module ” error, huwag pansinin ang mga pagsusuri sa makina ayon sa tinukoy na manager ng package. para sa ' npm 'Maaari itong gawin gamit ang' -puwersa 'bandila, at para sa' sinulid 'ito ay maisasagawa sa pamamagitan ng' –ignore-engines ” check flag. Bilang karagdagan, maaari ring lutasin ng user ang error sa pamamagitan ng pagbabago sa ' mga makina 'patlang ng' package-lock.json ” file o pag-upgrade ng bersyon ng Node. Tinalakay ng post na ito ang lahat ng posibleng dahilan kasama ang kanilang solusyon upang malutas ang error na 'Hindi mahanap ang module' gamit ang Node.js.