将GitLab仓库部署至Heroku时遇SyntaxError: Unexpected token .错误
解决GitLab部署Heroku时的SyntaxError: Unexpected token .
问题原因
错误出现在delete this.globalFlags?.json;这一行,提示Unexpected token .,核心原因是当前运行Heroku CLI的Node.js版本过低,不支持可选链操作符?.。该语法特性在Node.js 14.0.0及以上版本才被引入,而你的GitLab Runner环境使用的Node.js版本低于这个要求。
解决步骤
升级GitLab CI/CD环境的Node.js版本:
在.gitlab-ci.yml配置文件中,添加步骤指定使用支持?.的Node版本(推荐18.x及以上):before_script: - nvm install 18 - nvm use 18 - node --version # 验证版本是否符合要求若环境未安装nvm,可通过系统包管理器直接安装对应版本(例如Ubuntu系统执行
apt-get install nodejs=18.*)。确保Heroku CLI与Node版本兼容:
若之前通过brew安装的Heroku CLI绑定了旧版Node,可尝试用npm重新安装:npm uninstall -g heroku npm install -g heroku检查自托管Runner的全局Node版本:
如果使用自托管GitLab Runner,直接在Runner服务器上升级Node.js到14.x及以上版本,确保全局环境满足要求。
验证
部署前先在CI环境中运行node --version,确认版本≥14.0.0,再执行Heroku部署命令即可避免该语法错误。
内容的提问来源于stack exchange,提问作者Y_K
相关产品推荐
相关产品推荐

