programing

오류 [ERR_REQUIR_ESM]: ES 모듈의 require()가 지원되지 않습니다.

bestprogram 2023. 9. 9. 09:47

오류 [ERR_REQUIR_ESM]: ES 모듈의 require()가 지원되지 않습니다.

나는 누군가가 게임에서 온라인 상태인지 묻는 디스코드 을 만들려고 노력하고 있습니다.

하지만 계속해서 이런 메시지가 나타납니다.

[ERR_REQUIR_ESM]: ES 모듈이 지원되지 않도록 해야 합니다.대신...에서 index.js의 요구 사항을 변경합니다.모든 공용에서 사용할 수 있는 동적 가져오기()로JS 모듈.

이게 내 암호입니다.

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

이것은 제 소포입니다.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최신 버전은 사용하지 않습니다.require()패키지를 가져올 구문입니다.당신은 당신의 집으로 가야합니다.package.json활자를

 { 
   "type": "module",
 }

사용하다import구문 및 가져오기node-fetch, 하지만 그러면 당신은 사용할 수 없습니다.require다른 소포에 대해서도.당신은 일을 해야 합니다.import성명서만.

또는 Got 또는 Axios와 같은 다른 패키지를 사용할 수 있습니다. 이 패키지는require()통사론

난 이해했다.다운그레이드 할 수 밖에 없었어요node-fetch상위 버전에서는 ESM만 사용하기 때문에 오류가 많이 발생하여 2.6.6으로 변경되었습니다.

node-fetchv3는 최근에 지원을 중단했습니다.requireES Modules에 유리하게 수입하는 방법.지금 ESM 가져오기를 사용해야 합니다.

import fetch from "node-fetch";

파일 맨 위에 있습니다.

언급URL : https://stackoverflow.com/questions/69081410/error-err-require-esm-require-of-es-module-not-supported