1
resposta

[Sugestão] ReferenceError: require is not defined

Estou trilhando os modulos de Node e me deparei com esse erro:

ReferenceError: require is not defined
    at file:///C:/Code/Alura/alura-books-server/controlers/livro.js:2:12
    at ModuleJobSync.runSync (node:internal/modules/esm/module_job:395:35)
    .
    .
    .

Pelas minhas pesquisas, após a versão 14 do Node o require não existe mais por padrão então precisamos fazer o import dele para usa-lo:

import { createRequire } from 'module';
const require = createRequire(import.meta.url)

Isso resolve o problema!

1 resposta

Olá Kaio! Tudo certo?

Esse erro geralmente ocorre quando se está utilizando um ambiente que não suporta o require nativamente, como é o caso dos módulos ES6, que utilizam import e export ao invés de require e module.exports.

A solução que você encontrou, utilizando createRequire do módulo module, é uma ótima maneira de contornar essa limitação quando você precisa usar require em um ambiente de módulos ES6.

Continue com esse empenho!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!