无法在树莓派上部署Discord Bot的问题求助
解决Discord Bot运行时的
async语法错误问题 兄弟,你遇到的这个SyntaxError: Unexpected identifier错误根源很清晰——你的Node.js版本太低,不支持async/await语法。async关键字是在Node.js 7.6.0版本才开始默认支持的,从报错里的vm.js和module.js版本来看,你的环境明显是老版本Node导致的兼容性问题。
下面给你一步步解决的方案:
第一步:检查当前Node.js版本
先在终端里运行这个命令确认你的版本:node -v如果输出的版本号低于
v7.6.0,那就实锤是版本的问题了。第二步:升级Node.js(推荐用nvm管理版本)
用nvm(Node Version Manager)来升级是最稳妥的,不会搞乱系统环境:- 如果还没装nvm,先安装它(Linux/macOS可以用curl脚本,Windows直接下载官方安装包即可)
- 安装最新的长期支持版(LTS)Node:
nvm install --lts - 切换到刚安装的新版本:
比如装的是18.x版本,就输入nvm use [你的LTS版本号]nvm use 18
第三步:验证修复效果
再次运行node -v确认版本已经在v7.6.0以上,然后重新执行:node index.js这时候
async语法的报错应该就消失了。第四步:修复pm2的运行问题
升级Node后,pm2可能还在绑定旧的Node版本,需要重新配置进程:- 先删掉之前的Bot进程:
(把pm2 delete DiscordBotDiscordBot换成你之前设置的进程名,忘了的话可以用pm2 list查看) - 用新的Node版本重新启动Bot:
pm2 start index.js --name "DiscordBot"
- 先删掉之前的Bot进程:
如果实在不想升级Node(非常不推荐,老版本存在安全风险),你也可以用Babel把代码转译成兼容老版本的语法,但升级Node是最直接省心的方案。
内容的提问来源于stack exchange,提问作者Sebastian Malinowski
相关产品推荐
相关产品推荐

