Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Estou tendo incompatibilidade de módulos, com o node-fath, alguém pode me ajudar?

No vídeo o feth é importado com require() mas aqui não está funcionando.

node .\cli.js .\arquivos\texto.md validar
internal/modules/cjs/loader.js:1089
      throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
      ^

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: D:\Projects\Prog\Alura\NodeJs-criandoBiblioteca\node_modules\node-fetch\src\index.js
require() of ES modules is not supported.
require() of D:\Projects\Prog\Alura\NodeJs-criandoBiblioteca\node_modules\node-fetch\src\index.js from D:\Projects\Prog\Alura\NodeJs-criandoBiblioteca\http-validation.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from D:\Projects\Prog\Alura\NodeJs-criandoBiblioteca\node_modules\node-fetch\package.json.

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1089:13)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (D:\Projects\Prog\Alura\NodeJs-criandoBiblioteca\http-validation.js:1:15)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12) {
  code: 'ERR_REQUIRE_ESM'
}
4 respostas

Boa tarde Andrei, tudo certo?

Você poderia disponibilizar os códigos do seu projeto? Nos ajudaria bastante para poder te auxiliar no processo de depuração. De preferência, caso consiga compartilhar o projeto em um repositório público no GitHub e nos enviar o link aqui no tópico.

Qualquer dúvida estarei no aguardo. Bons estudos!

solução!

A solução foi alterar em http-validacao.js:

  • const fetch = require('node-fetch');

para:

  • const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));

fonte: https://stackoverflow.com/a/69331469

  • node -v 16.11.1

Olá, eu estava com mesmo problema, a solução que o Marcus posto deu certo que é só trocar a forma que está sendo chamado o node-fetch.

Boa, Marcus!!! Estava com o mesmo probelma!