Come risolvere l'errore 'referenceerror require not define'?

Come Risolvere L Errore Referenceerror Require Not Define



Node.js non è nulla di per sé, la sua esistenza dipende dai moduli e dai metodi forniti da ciascun modulo. Per funzionare con questi moduli, lo sviluppatore deve prima installarli e poi importarli all'interno del file attualmente funzionante. Per importare i moduli ci sono due modi che sono specificamente collegati alla versione di JavaScript che lo sviluppatore sta attualmente utilizzando o su cui il proprietario dell'applicazione desidera costruire. Durante l'importazione c'è la possibilità di affrontare più errori e l'errore più popolare e più comune relativo al ' richiedere() ' il metodo viene descritto e risolto.

Questa guida spiega la procedura per risolvere gli errori 'ReferenceError: require non definito'.

Come risolvere l'errore 'ReferenceError: require non definito'?

Per importare moduli esterni o integrati nel progetto vengono utilizzati due approcci, questi utilizzano il metodo ' richiedere() 'metodo' o ' importare ' parola chiave. Il citato “ ReferenceError: require non è definito ' viene affrontato quando un utente tenta di utilizzare il ' richiedere() ' Metodo all'interno del ' Modulo ES ' scopo. L'errore discusso appare in questo modo sulla console in node.js quando viene eseguito il codice indicato di seguito:









I motivi per cui si è verificato l'errore 'Risolvi 'ReferenceError: require non definito' e le relative soluzioni sono spiegati nelle sezioni seguenti.



Motivo 1: il tipo di applicazione è impostato su Modulo

Se la tua applicazione visualizza l'errore menzionato, la soluzione più semplice e di lunga durata è la modifica del ' pacchetto.json ' file. Cerca la coppia chiave/valore con ' chiave ' Di ' tipo ' e il valore assegnato di ' modulo ”. Ciò rende modulare l’ambiente dell’intera applicazione, impedendo l’utilizzo di vecchi “ CommonJS ” moduli e metodi. La rappresentazione visiva di questa coppia chiave/valore appare così:





'tipo' : 'modulo' ,

Soluzione: rimuovere la chiave 'Tipo'.

La soluzione è la rimozione del “ tipo ' chiave e valore assegnato dal progetto node.js ' pacchetto.json ' file. La rimozione dal file 'package.json' sfrutta l'ambito del modulo ES6 e rende praticabile il metodo 'require()'. Ora, quando lo stesso codice viene eseguito nuovamente, non si verificherà alcun errore.



Motivo 2: lavorare in “.mjs ' File

IL ' .mjs ' è un file di codice sorgente JavaScript del modulo. Contiene codice all'interno dell'ambiente del modulo non in ' CommonJS ' che divide il codice in più file per una migliore gestibilità. IL ' richiedere() ' il metodo si trova sotto il ' CommonJS ”. Ecco perché il metodo 'require' diventerà indefinito se utilizzato all'interno del ' .mjs 'estensione del file e porta al verificarsi dell'errore menzionato:

Soluzione: convertire l'estensione del file in “.cjs”

Proprio come il codice sorgente JavaScript modulare, l'estensione del file ' .mjs ' è disponibile. L’estensione di “ .cjs ' è previsto ' CommonJS ' moduli e proprietà. Questo file non accetta ' modulare ' pacchetti come ' importare ' ma funziona bene con le versioni ES5. Nel nostro caso, la modifica dell'estensione del file risolverà il problema relativo al ' richiedere() ' metodo:

Approccio alternativo: utilizzare la dichiarazione ES6 “import/export”

IL ' richiedere() ' Il metodo è definito e previsto dal ' CommonJs ' ed è accettabile fino alla versione JavaScript di ES5 (ECMAScript 5). È stato pubblicato nel 2009 e ora è diventato obsoleto poiché molti moduli più recenti non lo supportano o non funzionano correttamente in ES5. Proprio come il “ richiedere() 'Il metodo viene ora sostituito con uno più ottimizzato e semplice' importare 'dichiarazioni. Il funzionamento di entrambe le entità è lo stesso, ma l''importazione' ha un vantaggio grazie alla tecnologia più recente e alla maggiore facilità da essa fornita.

Per moduli predefiniti o esterni

Nella dimostrazione seguente, l'istruzione 'import' viene utilizzata come alternativa al metodo 'require()' per importare il modulo predefinito o di terze parti:

importare leggi rigaOgg da 'linea di lettura' ;

consolle. tronco d'albero ( leggi rigaOgg ) ;

Dopo aver compilato il codice citato, lo stesso compito che deve essere svolto dal “ richiedere() ' viene eseguito il metodo ' ReferenceError: require non è definito ' non apparirà altrettanto bene:

Per moduli personalizzati

IL ' importare ' viene utilizzata anche per 'importare' i moduli o le funzioni personalizzati da altri file che risiedono nella stessa directory o in directory diverse. Le funzioni o variabili da altri file vengono esportate utilizzando il comando ' esportare ' parola chiave. Ad esempio, visita lo snippet di codice seguente in cui una singola funzione e una variabile casuale verranno importate da un altro file:

app.js

cost esportaVariabile = 'Questa guida è fornita da Linuxhint!' ;

cost funzioneesportazione = ( ) => {

consolle. tronco d'albero ( esportaVariabile ) ;

} ;

esportare predefinito funzioneesportazione ;

esportare {

esportaVariabile

} ;

La spiegazione del blocco di codice sopra è la seguente:

  • Innanzitutto, la variabile casuale denominata “ esportaVariabile ' è definita e la funzione freccia ' funzioneesportazione() ” che stampa la “exportVariable” creata sulla console.
  • Le parole chiave di “ predefinito di esportazione ' E ' esportare ' vengono utilizzati per esportare il ' funzioneesportazione() ' E ' esportaVariabile ' entità dal file.
  • Quando questo file viene importato, la funzione esportata e le variabili diventano disponibili per l'utilizzo.

indice.js

'index.js' è il nostro file secondario in cui la funzione e la variabile esportate verranno importate e utilizzate, contiene il codice indicato di seguito:

importare funzione di esportazione, { esportaVariabile } da './app.js' ;

funzioneesportazione ( ) ;

consolle. tronco d'albero ( esportaVariabile ) ;

Nel codice sopra, il ' importare L'istruzione ' viene utilizzata per importare l'impostazione predefinita ' funzioneesportazione() ' e la variabile ' esportaVariabile ' dal ' app.js ' file.

Quindi, entrambe le entità importate vengono richiamate e visualizzate sulla console a scopo di verifica.

Ora esegui il comando principale “ indice.js 'file utilizzando il comando indicato di seguito:

indice del nodo. js

L'output generato mostra che gli elementi importati funzionano correttamente senza causare il ' ReferenceError: require non è definito 'errore:

Si tratta di risolvere l'errore specificato.

Conclusione

Per risolvere il “ ReferenceError: require non è definito ' errore, rimuovere il ' tipo ' chiave avente il valore di ' modulo ' dal ' pacchetto.json ' o modificare l'estensione del file attualmente funzionante in ' .cjs ”. Nel caso in cui desideri lavorare nella versione modulare ES6, invece di utilizzare il ' richiedere() ' Metodo utilizzare il ' importare 'Le dichiarazioni si avvicinano. Questa guida ha spiegato le possibili soluzioni per risolvere il ' ReferenceError: require non è definito 'errore' in node.js