You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署报错:SyntaxError: Use of const in strict mode 解决问询

解决Heroku部署时SyntaxError: Use of const in strict mode问题

嘿,这个问题我之前踩过一模一样的坑!你猜的完全没错,核心原因就是本地和Heroku使用的Node.js版本不匹配——老版本的Node(比如v0.10.x及更早)在严格模式下不支持ES6的const语法,这才抛出了这个错误。下面是一步步的解决办法:

1. 确认本地与Heroku的Node版本

  • 本地执行node --version,记下你的版本号(比如v14.17.0)
  • 注意:别直接用heroku run node --version看Heroku的版本!这个命令查的是运行时dyno的版本,而构建应用时用的版本才是关键。正确的方式是看Heroku构建日志里的Node版本,或者直接通过配置指定版本。

2. 强制Heroku使用与本地一致的Node版本

有两种简单的方式指定版本:

方法一:使用.nvmrc文件

在项目根目录创建一个.nvmrc文件,里面直接写入你的本地Node版本号:

v14.17.0

方法二:在package.json中添加engines字段

打开项目的package.json,在根节点下添加如下配置(替换成你的本地版本):

"engines": {
  "node": "14.17.0",
  "npm": "6.14.13"
}

Heroku在构建时会自动读取这个字段,安装指定版本的Node和npm。

3. 重新部署验证

  • 把.nvmrc或修改后的package.json提交到Git:
    git add .
    git commit -m "Specify Node.js version for Heroku"
    git push heroku main
    
  • 部署完成后,执行heroku run node --version确认版本和本地一致,这时候再访问应用应该就不会报错了。

额外排查点

如果还是有问题,可以检查:

  • 确认你的代码里没有在老Node版本不支持的其他ES6语法(不过只要版本匹配,const的问题肯定能解决)
  • 检查Heroku的buildpack是否为官方的Node.js buildpack,执行heroku buildpacks查看,不是的话可以设置:
    heroku buildpacks:set heroku/nodejs
    

我当初就是靠指定版本解决的这个问题,你试试应该能搞定!

内容的提问来源于stack exchange,提问作者Bwizard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:01:40