升级Discord.js到v13后报Cannot find module 'node:events'错误,Node版本为17.1.0
你遇到的fsevents相关警告属于可选依赖不兼容,fsevents是macOS系统专属的文件监听依赖,Linux环境下会自动跳过,完全不影响代码运行,不需要处理。
Cannot find module 'node:events'报错的根本原因是你当前运行项目时实际调用的Node版本仍然低于16.0.0,你安装的17.1.0版本并未在运行环境中生效。node:前缀导入核心模块是Node v16.0.0才加入的特性,discord.js v13+依赖该特性,旧版Node无法识别就会抛出模块不存在的错误。
可按以下步骤排查解决:
- 首先在项目目录执行
node -v,确认当前环境实际生效的Node版本,如果输出不是17.1.0,说明版本切换未生效。 - 如果你使用n管理Node版本,执行
n 17.1.0手动切换版本,也可以直接执行n use 17.1.0 index.js指定版本启动项目。 - 如果你使用nvm管理Node版本,执行
nvm use 17.1.0切换版本,如需永久设置当前环境的默认版本,执行nvm alias default 17.1.0即可。 - 如果你使用的是Replit这类在线IDE(从你的项目路径
/home/runner可判断大概率是该场景),需要在项目的.replit配置文件里将运行命令修改为npx node@17 index.js,或者在项目配置面板手动将Node运行版本调整为16+,这类在线IDE默认会调用系统全局的旧版Node,单独安装新版本不会自动替换默认运行环境。 - 确认Node版本生效后,删除项目根目录下的
node_modules文件夹和package-lock.json文件,重新执行npm install安装依赖,再启动项目即可恢复正常。
内容的提问来源于stack exchange,提问作者8less
相关产品推荐
相关产品推荐

