Travis CI服务器上React项目的peer依赖冲突问题求助
解决Travis CI构建时的React Peer依赖冲突问题
问题根源
你的项目依赖的react-router-dom@4.1.1要求peer依赖React版本为^15,但当前项目安装的是react@16.0.0-alpha.13(React 16预览版),两者版本不匹配,导致npm/yarn在安装依赖时触发peer依赖错误,不管切换npm还是yarn都会出现这个问题。
修复方案
方案1:升级react-router-dom到兼容React 16的版本
react-router-dom从4.2.2版本开始正式支持React 16,直接修改package.json中的依赖版本:
"dependencies": { // ... 其他依赖不变 "react-router-dom": "^4.2.2" }
修改后,在本地执行npm install或yarn install更新依赖,再提交到Travis CI重新构建即可。如果需要更稳定的版本,也可以升级到5.x系列(注意确认其他依赖是否兼容)。
方案2:降级React到15.x版本
如果不想升级react-router-dom,可将React和React DOM降级到15.x的稳定版本,满足peer依赖要求:
"dependencies": { // ... 其他依赖不变 "react": "^15.7.0", "react-dom": "^15.7.0" }
同样执行依赖安装命令更新后,重新提交构建。
临时绕过方案(不推荐长期使用)
如果只是临时需要构建通过,可以在Travis CI的构建命令中添加忽略peer依赖的参数:
- 用npm的话,修改
.travis.yml中的构建命令:script: - npm install --legacy-peer-deps - npm run build - 用yarn的话:
script: - yarn install --ignore-peer-dependencies - yarn run build
这种方法会跳过peer依赖检查,可能导致运行时出现未知问题,仅作为临时应急使用。
内容的提问来源于stack exchange,提问作者Hemant Sharma
相关产品推荐
相关产品推荐

