在线运行Discord机器人时报Cannot find module 'node:events'错误如何解决?
报错原因
该错误是由于你使用的discord.js版本依赖Node.js 16.9.0及以上版本的node:前缀核心模块导入特性,你本地VSCode环境的Node.js版本满足要求,但是在线运行环境的Node.js版本过低,无法识别node:events这种导入语法,因此触发报错。
解决方法
- 先查看在线环境的Node.js版本,执行命令
node -v确认版本号:- 如果版本低于16.9.0,优先升级在线环境的Node.js到16.9.0以上,推荐使用18.x或者20.x的LTS长期支持版本
- 大部分在线托管平台支持在项目根目录的
package.json中添加配置指定Node版本,示例如下:
{ "engines": { "node": ">=16.9.0" } }- 部分平台也支持通过
.nvmrc文件指定版本,直接在文件中写入你需要的版本号即可,例如18.17.0
- 如果你的在线环境无法升级Node.js版本,可以降级
discord.js到v13版本,该版本不需要使用node:前缀导入核心模块,安装命令如下:npm install discord.js@13
注意降级后API有差异,你需要对应调整你的机器人适配v13的语法规则 - 完成版本调整后,删除旧的依赖缓存重新安装,避免缓存导致的异常:
rm -rf node_modules package-lock.json && npm install
内容的提问来源于stack exchange,提问作者Shlok Ippala
相关产品推荐
相关产品推荐

