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

Heroku部署React应用时出现sh: 1: if-env: not found报错如何解决

报错原因

你遇到的if-env: not found报错,核心是if-env依赖包被放在了项目的devDependencies(开发依赖)分类下,Heroku生产环境部署时默认只会安装dependencies(生产依赖)分类下的包,不会安装开发依赖,因此项目启动时找不到对应的可执行文件。

解决方案
  • 方案1:将if-env移动到生产依赖(最推荐)
    在本地项目根目录执行对应包管理器的命令:
    用npm的情况:npm install if-env --save
    用yarn的情况:yarn add if-env
    执行完成后重新提交代码部署到Heroku即可。
  • 方案2:配置Heroku安装所有开发依赖
    如果你需要保留开发依赖的安装逻辑,可执行Heroku CLI命令修改环境变量:
    heroku config:set NPM_CONFIG_PRODUCTION=false YARN_PRODUCTION=false
    该配置会让Heroku安装依赖时包含devDependencies下的所有内容,仅适合测试环境部署使用,生产环境不推荐。
  • 方案3:移除对if-env的依赖
    很多旧版本React脚手架会用if-env判断启动环境,你可以直接修改package.json中的scripts字段,替换掉if-env的调用逻辑,比如原本的启动脚本:
    "start": "if-env NODE_ENV=production && npm run start:prod || npm run start:dev"
    可直接修改为对应环境的启动命令,比如生产环境:
    "start": "npm run start:prod"
    修改后重新提交部署即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:45:05