Como resolver o erro “referenceerror require não está definido”?

Como Resolver O Erro Referenceerror Require Nao Esta Definido



O Node.js não é nada por si só, sua existência depende dos módulos e métodos fornecidos por cada módulo. Para trabalhar com esses módulos, o desenvolvedor deve primeiro instalá-lo e depois importá-lo dentro do arquivo atualmente em funcionamento. Para importar módulos, existem duas maneiras que estão especificamente vinculadas à versão do JavaScript que o desenvolvedor está usando agora ou na qual o proprietário do aplicativo deseja construir. Durante a importação, há uma chance de enfrentar vários erros e um erro popular e mais comum relacionado ao “ exigir() ”O método está sendo descrito e resolvido.

Este guia explica o procedimento para resolver erros “ReferenceError: require não está definido”.

Como resolver o erro “ReferenceError: require não está definido”?

Para importar módulos externos ou embutidos no projeto são utilizadas duas abordagens, estas são usando o “ exigir() ”método ou“ importar ”palavra-chave. O mencionado “ ReferenceError: require não está definido ”É enfrentado quando um usuário tenta usar o“ exigir() ”Método dentro do“ Módulo ES ' escopo. O erro discutido aparece assim no console em node.js quando o código indicado abaixo é executado:









Os motivos da ocorrência do erro “Resolver “ReferenceError: require não está definido” e suas soluções correspondentes são explicados nas seções abaixo.



Razão 1: o tipo de aplicativo está definido como módulo

Se sua aplicação está apresentando o erro mencionado, a solução mais fácil e demorada é a modificação do “ pacote.json ' arquivo. Procure o par chave/valor com o “ chave ' de ' tipo ”E o valor atribuído de“ módulo ”. Isso torna o ambiente de toda a aplicação modular, o que evita a utilização de “ CommonJS ”módulos e métodos. A representação visual deste par chave/valor aparece assim:





'tipo' : 'módulo' ,

Solução: Remova a chave “Tipo”

A solução é a remoção do “ tipo ”chave e valor atribuído do projeto node.js“ pacote.json ' arquivo. A remoção do arquivo “package.json” explora o escopo do módulo ES6 e torna o método “require() viável. Agora, quando o mesmo código for executado novamente não haverá ocorrência de erro.



Razão 2: Trabalhar em “.mjs Arquivo

O ' .mjs ”é um arquivo de código-fonte do módulo JavaScript. Ele contém código dentro do ambiente do módulo, não em “ CommonJS ”que divide o código em vários arquivos para melhor gerenciamento. O ' exigir() ”O método está sob o“ CommonJS ”. É por isso que o método “require” se tornará indefinido quando usado dentro do “ .mjs ”Extensão de arquivo e leva à ocorrência do erro mencionado:

Solução: converta a extensão do arquivo para “.cjs”

Assim como o código-fonte JavaScript modular, a extensão do arquivo “ .mjs ' está disponível. A extensão de “ .cjs ”é fornecido para“ CommonJS ”módulos e propriedades. Este arquivo não aceita “ modular ”pacotes como“ importar ”Mas funciona bem com versões ES5. No nosso caso, a alteração da extensão do arquivo resolverá o problema relacionado ao “ exigir() ”método:

Abordagem Alternativa: Use a Declaração ES6 “importar/exportar”

O ' exigir() ”O método é definido e fornecido pelo“ CommonJs ”E é aceitável até a versão JavaScript do ES5 (ECMAScript 5). Foi publicado em 2009 e agora se tornou obsoleto porque muitos módulos mais recentes não o suportam ou não funcionam corretamente no ES5. Assim como o “ exigir() ”O método agora está sendo substituído por um mais otimizado e fácil“ importar ' declarações. O funcionamento de ambas as entidades é o mesmo, mas a “importação” tem uma vantagem devido à tecnologia mais recente e à maior facilidade que proporciona.

Para módulos padrão ou externos

Na demonstração abaixo, a instrução “import” está sendo usada como alternativa ao método “require()” para importar o módulo padrão ou de terceiros:

importar readlineObj de 'Leia a linha' ;

console. registro ( readlineObj ) ;

Após a compilação do código mencionado, a mesma tarefa que precisa ser realizada pelo “ exigir() ”é executado e o“ ReferenceError: require não está definido ”não aparecerá também:

Para módulos personalizados

O ' importar ”A instrução também é utilizada para “importar” os módulos ou funções de construção personalizada de outros arquivos que residem no mesmo diretório ou em diretórios diferentes. As funções ou variáveis ​​de outros arquivos são exportadas usando o “ exportar ”palavra-chave. Por exemplo, visite o trecho de código abaixo no qual uma única função e uma variável aleatória serão importadas de outro arquivo:

aplicativo.js

const variável de exportação = 'Este guia é fornecido pela Linuxhint!' ;

const função de exportação = ( ) => {

console. registro ( variável de exportação ) ;

} ;

exportar padrão função de exportação ;

exportar {

variável de exportação

} ;

A explicação do bloco de código acima é a seguinte:

  • Primeiro, a variável aleatória chamada “ variável de exportação ”é definido e a função de seta“ funçãoexport() ”é criado que imprime a “exportVariable” criada no console.
  • As palavras-chave de “ padrão de exportação ' e ' exportar ”São utilizados para exportar o“ funçãoexport() ' e ' variável de exportação ”entidades do arquivo.
  • Quando este arquivo é importado, a função exportada e as variáveis ​​ficam disponíveis para uso lá.

index.js

O “index.js” é o nosso arquivo secundário no qual a função e a variável exportadas serão importadas e utilizadas, contém o código abaixo:

importar função de exportação, { variável de exportação } de './app.js' ;

função de exportação ( ) ;

console. registro ( variável de exportação ) ;

No código acima, o “ importar ”A instrução é usada para importar o padrão“ funçãoexport() ”E a variável“ variável de exportação ' de ' aplicativo.js ' arquivo.

Em seguida, ambas as entidades importadas são invocadas e exibidas no console para fins de verificação.

Agora, execute o principal “ index.js ”Arquivo usando o comando indicado abaixo:

índice do nó. js

A saída gerada mostra que os elementos importados estão funcionando corretamente sem causar o “ ReferenceError: require não está definido ”erro:

Trata-se de resolver o erro especificado.

Conclusão

Para resolver o “ ReferenceError: require não está definido ”Erro, remova o“ tipo ”chave com o valor de“ módulo ' de ' pacote.json ”Ou modifique a extensão do arquivo atualmente em funcionamento para“ .cjs ”. Caso você deseje trabalhar na versão modular ES6 então ao invés de usar o “ exigir() ”Método use o“ importar ”abordagem de declarações. Este guia explicou as possíveis soluções para resolver o “ ReferenceError: require não está definido “erro” em node.js