Ubuntu 22下PeerTube v6.2.1启动失败:await保留字语法错误求助
PeerTube v6.2.1启动报错(SyntaxError: Unexpected reserved word)修复方案
问题分析
报错指向await registerOpentelemetryTracing();这个顶层await调用,Node.js v20.17.0本身支持顶层await,但该报错说明当前模块被当作CommonJS加载(CommonJS不支持顶层await),或者模块配置/启动方式存在问题。
修复步骤
检查package.json的模块类型配置
打开/var/www/peertube/versions/peertube-v6.2.1/package.json,确认根节点是否存在"type": "module"字段。如果没有,添加该字段:{ "type": "module", // 其他原有字段... }调整启动命令的模块加载策略
如果无法修改package.json,或者修改后仍报错,启动时强制指定ES模块加载:node --input-type=module /var/www/peertube/versions/peertube-v6.2.1/dist/server.js若使用systemd管理服务,修改对应的
.service文件,将ExecStart行改为:ExecStart=/usr/bin/node --input-type=module /var/www/peertube/versions/peertube-v6.2.1/dist/server.js然后重启服务:
sudo systemctl daemon-reload sudo systemctl restart peertube重新安装官方Node.js版本
若当前Node.js版本存在兼容性问题,卸载现有版本后安装官方v20.17.0:sudo apt purge nodejs npm -y curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install nodejs -y验证版本:
node -v,确认输出为v20.17.0。重新下载PeerTube安装包
若安装包文件损坏,备份当前版本后重新下载解压:cd /var/www/peertube/versions sudo mv peertube-v6.2.1 peertube-v6.2.1-backup sudo wget https://github.com/Chocobozzz/PeerTube/releases/download/v6.2.1/peertube-v6.2.1.tar.xz sudo tar xvf peertube-v6.2.1.tar.xz sudo chown -R peertube:peertube peertube-v6.2.1
内容的提问来源于stack exchange,提问作者Кирпич Невзоров
相关产品推荐
相关产品推荐

