本地运行Renovate配置报错:Unexpected token '?'语法错误
本地运行Renovate时出现SyntaxError: Unexpected token '?'的解决方法
问题背景
按照Renovate文档说明在本地运行Renovate,通过Mend托管的GitHub App Renovate Bot运行测试项目(包含package.json和renovate.json)一切正常,但在仓库内执行以下命令时触发语法错误:
LOG_LEVEL=debug npx renovate --platform=local --repository-cache=reset
npm通过apt包管理器安装。
错误信息
/home/$USER/.npm/_npx/05eeecd92f4e18e0/node_modules/renovate/dist/instrumentation/index.js:33 [semantic_conventions_1.ATTR_SERVICE_NAME]: process.env.OTEL_SERVICE_NAME ?? 'renovate', ^ SyntaxError: Unexpected token '?' at wrapSafe (internal/modules/cjs/loader.js:915:16) at Module._compile (internal/modules/cjs/loader.js:963:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:85:18) at Object.<anonymous> (/home/gautam/.npm/_npx/05eeecd92f4e18e0/node_modules/renovate/lib/renovate.ts:4:1) at Module._compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
项目配置文件
package.json
{ "devDependencies": { "chalk": "5.2.0" } }
renovate.json
{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:recommended" ] }
原因分析
错误中的??是空值合并运算符,该语法仅在Node.js 14.0.0及以上版本支持。而apt包管理器默认安装的Node.js版本通常较低(比如部分Ubuntu版本默认提供Node.js 12.x),无法识别该语法,因此触发报错。
解决步骤
检查当前Node.js版本
执行以下命令确认版本:node -v如果版本低于14.0.0,需要升级。
升级Node.js版本
推荐使用nvm(Node版本管理器)来安全升级,避免破坏系统自带的Node.js:- 安装nvm:通过官方提供的脚本完成安装
- 重新加载终端配置文件(如
source ~/.bashrc或source ~/.zshrc,根据你使用的shell调整) - 安装最新LTS版本的Node.js:
nvm install --lts - 设置该版本为默认:
nvm alias default lts/*
重新运行Renovate命令
完成升级后,再次执行最初的Renovate命令,即可正常运行。
内容的提问来源于stack exchange,提问作者Marsstar
相关产品推荐
相关产品推荐

