错误 [ERR_REQUIRE_ESM]: ES 模块的 require()
Posted
技术标签:
【中文标题】错误 [ERR_REQUIRE_ESM]: ES 模块的 require()【英文标题】:Error [ERR_REQUIRE_ESM]: require() of ES Module 【发布时间】:2021-12-05 19:31:41 【问题描述】:v13,终端显示这个错误:
错误:const ms = require('parse-ms') // npm i parse-ms ^
错误 [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\DELL\OneDrive\Desktop\Discord Bot\node_modules\parse-ms\index.js from C:\Users\DELL\OneDrive\Desktop\Discord不支持 Bot\commands\Economy\beg.js。
代码:
const db = require('quick.db') // npm i quick.db
const ms = require('parse-ms') // npm i parse-ms
module.exports =
commands: ['beg'], // You Can Keep Any Name
description: 'Beg For Money', // Optional
callback: (message, args) =>
const user = message.member
const random = (min, max) =>
return Math.floor(Math.random() * (max - min) ) + min
const timeout = 60000 // 1 Min In MiliSecond
const amount = Math.floor(Math.random() * 900) + 100 // Min Is 100 And Max Is 1000(100+900)
let names = [ // Find More Names In Description
'Sir Cole Jerkin',
'Kim Kardashian',
'Logan Paul',
'Mr.Clean',
'Ryan Gosling',
'Ariana Grande',
'Default Jonesy',
'Cardi B',
'Dwight Shrute',
'Jesus',
'Taylor Swift',
'Beyoncé',
'Bill Clinton',
'Bob Ross',
'The Rock:',
'The Rock',
'Mike Hoochie',
'Doot Skelly',
'Ayylien',
'Spoopy Skelo'
]
const name = Math.floor(Math.random() * names.length) // To Get Random Name
let options = [
'Success',
'Failed'
]
let begged = random(0, parseInt(options.length))
let final = options[begged]
const begtime = db.fetch(`beg-time_$user.id`) // Keep `beg-time_$message.guild.id_$user.id` If You Want Different In All Servers
if(begtime !== null && timeout - (Date.now() - begtime) > 0)
const timeleft = ms(timeout - (Date.now() - begtime))
const embed = new MessageEmbed()
.setAuthor(`$user.user.username Begged`, user.user.displayAvatarURL( dynamic: true ))
.setTimestamp()
.setColor('RANDOM')
.setDescription(`
Already Begged, Beg Again In **$timeleft.seconds Seconds**
Default CoolDown Is **1 Minutes**
`)
message.channel.send(embeds: [embed])
else
if(final === 'Success')
let gave = [
'Donated',
'Gave'
]
const give = Math.floor(Math.random() * gave.length)
db.add(`money_$user.id`, amount)
const embed1 = new MessageEmbed()
.setAuthor(`$user.user.username Begged`, user.user.displayAvatarURL( dynamic: true ))
.setTimestamp()
.setColor('RANDOM')
.setDescription(`
**$names[name]**: $gave[give] **$$amount** To <@$user.user.id>
`)
message.channel.send(embeds: [embed1])
db.set(`beg-time_$user.id`, Date.now())
else if(final === 'Failed')
let notgave = [
`I Don't Have Money`,
`I Am Also Poor`,
`I Already Gave Money To Last Beggar`,
`Stop Begging`,
`Go Away`
]
const notgive = Math.floor(Math.random() * notgave.length)
const embed2 = new MessageEmbed()
.setAuthor(`$user.user.username Begged`, user.user.displayAvatarURL( dynamic: true ))
.setTimestamp()
.setColor('RANDOM')
.setDescription(`
**$names[name]**: $notgave[notgive]
`)
message.channel.send(embeds: [embed2])
db.set(`beg-time_$user.id`, Date.now())
```
【问题讨论】:
【参考方案1】:这个包的 V3.0 现在只支持使用 ES 模块,它们使用不同的语法进行导入。
您可以切换您当前的代码库以使用 ESM,或者另一种选择是将当前版本的 parse-ms 降级到 V2.1
请参考: https://github.com/sindresorhus/parse-ms/releases/tag/v3.0.0
【讨论】:
以上是关于错误 [ERR_REQUIRE_ESM]: ES 模块的 require()的主要内容,如果未能解决你的问题,请参考以下文章
在 Next.js ERR_REQUIRE_ESM 中导入 ES 模块
webpack: "[ERR_REQUIRE_ESM]: Must use import to load ES Module" - 但我用的是 import!
将 D3.js 7.0.0 与 Next.js 11.0.1 一起使用时,如何解决“[ERR_REQUIRE_ESM]:必须使用导入来加载 ES 模块”?
Swagger-JSdoc 不适用于 Node.JS 14.15.4 错误“ERR_REQUIRE_ESM”