Come risolvere il problema del 'nodo' del motore incompatibile con l'errore del modulo 'questo'.

Come Risolvere Il Problema Del Nodo Del Motore Incompatibile Con L Errore Del Modulo Questo



In Node.js, il ' pacchetto ' contiene tutti i file importanti di un modulo. Un modulo corrisponde a una libreria che costruisce una connessione con un'applicazione in base al suo contesto. Tutti i pacchetti Node.js non sono predefiniti, la maggior parte di essi sono esterni che possono essere installati nell'applicazione Node.js tramite il gestore pacchetti 'npm/yarn'.

L'installazione dei pacchetti esterni è abbastanza semplice, tuttavia a volte l'utente può riscontrare alcuni errori durante l'esecuzione di questa attività. Tra questi errori, l'errore 'Il 'nodo' del motore è incompatibile con 'questo' modulo' è uno di quelli che può essere risolto seguendo diverse tecniche.

Contorno rapido







Quando il “nodo” del motore è incompatibile con “questo” modulo si verifica un errore?

Il 'nodo' è incompatibile con 'Questo' L'errore del modulo si verifica per i seguenti motivi:



Motivo 1: il pacchetto richiesto non è compatibile

Il motivo più comune per cui il 'nodo' è incompatibile con l'errore del modulo 'Questo' è dovuto all'incompatibilità tra Node.js e la versione del pacchetto richiesta. Viene affrontato principalmente durante la distribuzione dell'applicazione Node.js su AWS.



Motivo 2: versione precedente del nodo

Un altro motivo è la versione precedente di Node.js. Si verifica principalmente nel sistema operativo Ubuntu quando l'utente tenta di aggiornare più volte la versione di Node.js e aggiorna anche i repository di sistema insieme ad essa. Per questo motivo, il “ adatto 'Il comando avvierà una versione precedente di Node.js presa dal pacchetto Debian e l'utente dovrà affrontare l'errore particolare di cui sopra.





Come risolvere l'errore del 'nodo' del motore incompatibile con il modulo 'questo'?

Questa sezione elenca tutte le possibili soluzioni praticabili per risolvere il problema del 'nodo' del motore che è incompatibile con l'errore del modulo 'Questo':

Soluzione 1: ignorare il controllo del motore utilizzando 'npm' e 'yarn'

La prima soluzione è “ ignorando il controllo del motore ' durante l'installazione del pacchetto specificato utilizzando il comando ' npm ' O ' filato 'gestori di pacchetti. Per ' npm ' può essere fatto utilizzando il ' -forza ' bandiera e per ' filato ' questa attività può essere eseguita utilizzando il comando ' –ignora-motori ' bandiera.



Prima spostatevi sul “ npm 'gestore dei pacchetti.

Sintassi (per NPM)

installazione npm -- forza < pacchetto nome >

Secondo la sintassi di cui sopra, il ' -forza ' Il flag aggiunge forzatamente il pacchetto specificato nell'applicazione Node.js

Ora utilizza la sintassi precedente per installare un pacchetto specifico nella versione corrente di Node.js:

installazione npm -- forzare il dattiloscritto

Nel comando precedente, il pacchetto 'typescript' viene installato ignorando la compatibilità della versione corrente del nodo.

L'output seguente mostra che ' dattiloscritto 'Il pacchetto è stato installato forzatamente nell'attuale applicazione Node.js. Mostra anche un messaggio di avviso dovuto alla cache. Esegui il ' verifica della cache npm 'comando per verificare se la cache ha funzionato correttamente o meno:

Ora ignora i controlli del motore utilizzando il comando ' filato 'gestore pacchetti con l'aiuto del comando indicato di seguito:

installazione del filo -- ignorare - motori

Il comando precedente ignora i controlli del motore e conferma che ' filato ' non installa le dipendenze opzionali. IL ' –ignora-motori ' esegue il comando 'yarn install' in modalità offline:

Il comando precedente crea un ' filato.lock ' nella directory principale del progetto Node.js.

IL ' filato Il gestore pacchetti richiede la seguente sintassi per installare un pacchetto ignorando i controlli del motore:

Sintassi(Per filato)

aggiungere filo < pacchetto nome > -- ignorare - motori

Ora usa la sintassi sopra scritta per installare un “ dattiloscritto ' pacchetto a livello globale in un sistema operativo:

filato globale aggiungi dattiloscritto -- ignorare - motori

L'output seguente aggiunge correttamente il progetto TypeScript a livello globale nell'attuale sistema operativo Windows per tutti i progetti Node.js:

Suggerimento: ignora i controlli del motore per tutti i comandi

Se l'utente desidera ignorare il controllo del motore per tutti i comandi, eseguire il comando sottostante insieme al comando ' VERO 'valore booleano:

il set di configurazione del filato ignora - motori VERO

Il comando precedente indica al compilatore di ignorare il campo del motore specificato nel file 'package.json':

IL ' motori da ignorare ' i controlli sono stati impostati su true per tutti i comandi. Ora l'utente può installare qualsiasi pacchetto specifico in Node.js senza specificare il flag '–ignore-engines':

Soluzione 2: disabilitare i campi del motore predefinito utilizzando il file 'package-lock.json'.

La soluzione successiva è modificare il ' motore ' dal campo ' pacchetto-lock.json ' file. Per fare ciò, innanzitutto, vai alla directory principale del progetto Node.js e apri il file “package-lock.json”.

Una volta aperto il file di destinazione, spostarsi su ' motori ” e aggiornarlo in questo modo:

Premere ' CTRL+S ' per salvare il file sopra. La modifica consente al gestore di pacchetti “npm” di installare la versione del pacchetto richiesta adatta alla versione “>=14.17” di Node.js.

Soluzione 3: aggiorna il nodo alla versione più recente

Un'altra soluzione è aggiornare la versione di Node.js. L'aggiornamento di Node.js su tutti i sistemi operativi è abbastanza semplice e può essere effettuato con l'aiuto delle guide sotto indicate:

  • Come aggiornare le versioni dei nodi su Windows?
  • Come aggiornare la versione del nodo su Ubuntu?
  • Come aggiornare Node.js all'ultima versione su macOS?

Cosa fare se il 'nodo' del motore è incompatibile con 'questo' modulo L'errore persiste ancora?

Se l'errore 'motore' nodo 'è incompatibile con il modulo 'Questo'' persiste dopo averlo risolto con una delle soluzioni di cui sopra, eliminare l'errore ' nodo_moduli ' cartella. La cartella 'node_modules' viene generata automaticamente quando viene installato un modulo di terze parti. Contiene tutti i pacchetti di terze parti da cui dipende il progetto Node.js.

Inoltre, il “ pacchetto-lock.json ' Il file viene generato automaticamente anche quando viene installato un pacchetto con 'npm'. Mantiene il registro delle dipendenze e delle sottodipendenze da cui dipende il pacchetto insieme alle relative versioni. Se il pacchetto è installato con 'yarn', il nome del file sarà ' filato.lock ”.

Soluzione: rimuovere la cartella 'node_modules' e il file 'package-lock.json'.

La soluzione all'errore riscontrato è eliminare la cartella 'node_modules', il file di configurazione 'package-lock.json/yarn.lock' e installare nuovamente il pacchetto richiesto.

In Linux , la cartella o i file sopra specificati possono essere eliminati con l'aiuto del comando ' rm (rimuovi)” comando:

rm - pacchetto rf node_modules - serratura. json //Elimina cartella e file

ls // Visualizza file e directory

Nel comando precedente il ' -R ' flag cancella la cartella specificata ' ricorsivamente ' comprese tutte le sue sottodirectory e il ' F ' Il flag indica all'interprete di eseguire questa attività ' con forza ':

L'output mostra che la cartella 'node_modules' e il file 'package-lock.json/yarn.lock' sono stati rimossi completamente:

In Windows , l'utente può eliminare la cartella “node_modules” e il file “package-lock.json/yarn.lock” semplicemente premendo il tasto “cancella” o utilizzando l'opzione “cancella” dal menu a tendina.

Si tratta di risolvere l'errore 'Impossibile trovare il modulo' in Node.js.

Conclusione

Per risolvere il motore” nodo' non è compatibile con il modulo 'Questo'. ', ignora i controlli del motore in base al gestore pacchetti specificato. Per ' npm ' può essere fatto utilizzando il ' -forza ' bandiera, e per ' filato ” può essere eseguita attraverso il “ –ignora-motori 'controlla la bandiera. Inoltre, l’utente può anche risolvere l’errore modificando il “ motori 'campo del' pacchetto-lock.json ' o aggiornando la versione di Node. Questo post ha discusso tutti i possibili motivi insieme alla loro soluzione per risolvere l'errore 'Impossibile trovare il modulo' utilizzando Node.js.