如何在Heroku上执行npm install --force安装依赖?
解决Heroku部署react-google-login依赖冲突问题
问题原因
react-google-login@5.2.2的peer依赖仅支持React 16或17版本,但你的项目使用的是React 18.2.0,Heroku默认执行npm install时会严格校验peer依赖,导致冲突报错。
解决方案
方法1:让Heroku安装时使用--force参数
你可以通过两种方式实现:
通过Heroku环境变量设置
本地终端执行以下命令(需先安装Heroku CLI并完成登录):heroku config:set NPM_CONFIG_FORCE=true也可直接在Heroku项目的设置页面中,添加环境变量
NPM_CONFIG_FORCE,值设为true。修改package.json的install脚本
在项目package.json中调整install脚本:"scripts": { "install": "npm install --force", // 保留其他原有脚本 }注意:此设置会让本地执行
npm install也默认带--force参数,若不需要本地强制安装,优先选择环境变量方式。
方法2:用--legacy-peer-deps替代--force
--legacy-peer-deps仅忽略peer依赖冲突,不会强制覆盖其他依赖,更温和,推荐优先尝试:
- 通过环境变量设置:
或在Heroku后台添加对应环境变量。heroku config:set NPM_CONFIG_LEGACY_PEER_DEPS=true
方法3:替换为支持React 18的谷歌登录库
react-google-login维护已不活跃,可改用官方推荐的@react-oauth/google,完美适配React 18:
- 卸载旧库:
npm uninstall react-google-login - 安装新库:
npm install @react-oauth/google - 按照新库文档修改登录组件代码即可。
内容的提问来源于stack exchange,提问作者Ayofayomi
相关产品推荐
相关产品推荐

