错误 [ERR_REQUIRE_ESM]:不支持 ES 模块的 require()

Error [ERR_REQUIRE_ESM]: require() of ES Module not supported(错误 [ERR_REQUIRE_ESM]:不支持 ES 模块的 require())
本文介绍了错误 [ERR_REQUIRE_ESM]:不支持 ES 模块的 require()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在尝试制作一个不和谐的机器人,它只会显示是否有人在游戏中在线.

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

但我不断收到此消息:

[ERR_REQUIRE_ESM]:不支持 ES 模块的 require().而是将 index.js in... 的 require 更改为在所有 CommonJS 模块中都可用的动态 import().

[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.

这是我的代码:

    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")
            }
        }
    }

这是我的 package.json:

This is my package.json:

{
    "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"
    }
}

推荐答案

node-fetch v3 最近停止了对 require 导入方式的支持,转而支持 ES 模块.您现在需要使用 ESM 导入,例如:

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";

在文件的顶部.

这篇关于错误 [ERR_REQUIRE_ESM]:不支持 ES 模块的 require()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Using discord.js to detect image and respond(使用 discord.js 检测图像并响应)
Check if user ID exists in Discord server(检查 Discord 服务器中是否存在用户 ID)
Guild Member Add does not work (discordjs)(公会成员添加不起作用(discordjs))
Creating my first bot using REPLIT but always error Discord.JS(使用 REPLIT 创建我的第一个机器人,但总是错误 Discord.JS)
How do I code event/command handlers for my Discord.js bot?(如何为我的 Discord.js 机器人编写事件/命令处理程序?)
How to find a User ID from a Username in Discord.js?(如何从 Discord.js 中的用户名中查找用户 ID?)