问题描述
我刚刚开始用Java的Visual Studio Code编写Discord机器人,这实际上是最基本的,在就绪事件中加载discord.js,然后登录。
甚至在运行第一行代码之前,我都会收到此错误:
Debugger listening on ws://127.0.0.1:5489/3cf4a3d1-ef26-4c1c-a274-030564d40731
For help see https://nodejs.org/en/docs/inspector
i:\Coding\Bots\PURGE\node_modules\discord.js\src\util\Util.js:584
str = str.replace(/@([^<>@ ]*)/gmsu,(match,target) => {
^
SyntaxError: Invalid regular expression flags
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:607:28)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Module.require (module.js:587:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (i:\Coding\Bots\PURGE\node_modules\discord.js\src\index.js:3:14)
Process exited with code 1
该错误发生在我没有写的Discord.js模块中,并且不知道其工作方式,因此无法修复。
重新安装Discord.js没有帮助,重新安装Visual Studio Code也没有帮助。 我给朋友发送了完全相同的文件(甚至是相同的node_modules文件夹),当他运行它时,它没有问题。任何想法是什么问题或如何解决?
这是我的代码:
console.log("test") //DOESNT LOG
const Discord = require("discord.js");
const fs = require("fs");
const config = require("./config.json");
let christian = {}
//This will define our bot
var bot = new Discord.Client()
bot.on('message',async msg => {
console.log(msg)
})
bot.on('ready',() => {
console.log(`-----Purge#2420 Online-----\nWatching over ${bot.guilds.cache.size} servers |`)
});
bot.login(config.token)
解决方法
来自评论:
我在[Node] v8.9.4上,在Discord.js V12上[...]
v12要求使用Node 12.x或更高版本,因此请确保您是最新的。
也就是说-您必须升级Node.js。
,在ready
事件中,您有一个无效的字符串,这可能导致错误'-----Purge#2420 Online-----\nWatching over ${bot.guilds.cache.size} servers |
,并且由于字符串开头的无效单引号'
而导致崩溃,请尝试使用反引号替换它(`)。
详细了解模板字符串here