Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

712
Visualizações
Error [ERR_REQUIRE_ESM]: require() of ES Module not supported

I'm trying to make a Discord bot that just says if someone is online on the game.

However I keep getting this message:

[ERR_REQUIRE_ESM]: require() of ES Module from not supported. Instead change the require of index.js in... to a dynamic import() which is available in all CommonJS modules.

This is my code:

    module.exports = {
        name: 'username',
        description: "this is the username command",
        async execute(message, args) {

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

            if (args.length !== 1) {
                return message.channel.send("invalid username wtf")
            }

            const ign = args[0]

            if (ign.length > 16 || ign.length < 3) {
                return message.channel.send("invalid username wtf")
            }

            const uuid = await fetch(`https://api.mojang.com/users/profiles/minecraft/${ign}`).then(data => data.json()).then(data => data.id).catch(err => message.channel.send("error wtf"));
            const onlineInfo = await fetch(`https://api.hypixel.net/status?key=${john}&uuid=${uuid}`).then(data => data.json());

            if (uuid.length !== 32) {
                return;
            }

            if (onlineinfo.success) {
                if (onlineinfo.session.online) {
                    message.channel.send("they are online")
                }
                else {
                    message.channel.send("they are offline")
                }
            }
            else {
                message.channel.send("hypixel api bad wtf")
            }
        }
    }

This is my package.json file:

{
    "name": "discordbot",
    "version": "1.0.0",
    "main": "main.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node main.js"
    },
    "author": "",
    "license": "ISC",
    "description": "",
    "dependencies": {
        "discord.js": "^13.0.1",
        "node-fetch": "^3.0.0"
    }
}
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

node-fetch latest version doesn't use require() syntax to import the package. You need to go to your package.json and type

 { 
   "type": "module",
 }

to use the import syntax and import node-fetch, but then you can't use require for any other packages you need to work with import statement only.

Or you can use other packages such as Got or Axios which can be imported by require() syntax.

over 4 years ago · Santiago Trujillo Relatório

0

node-fetch v3 recently stopped support for the require way of importing it in favor of ES Modules. You'll need to use ESM imports now, like:

import fetch from "node-fetch";

at the top of your file.

over 4 years ago · Santiago Trujillo Relatório

0

I figured it out. I just had to downgrade node-fetch to 2.6.1, as the higher versions only use ESM, which caused a lot of errors.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda