React 18环境下安装react-native-web遇依赖冲突问题求助
解决npm安装react-native-web时的依赖冲突问题
执行npm install react-native-web时触发依赖树解析错误,排查后确认是依赖版本不兼容导致,同类Bug此前已被官方关闭。
错误日志
npm install react-native-web npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: mSales@0.0.1 npm ERR! Found: react@18.1.0 npm ERR! node_modules/react npm ERR! react@"18.1.0" from the root project npm ERR! peer react@"^17.0.2 || ^18.0.0" from react-native-web@0.18.10 npm ERR! node_modules/react-native-web npm ERR! react-native-web@"^0.18.10" from the root project npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer react@"^18.2.0" from react-dom@18.2.0 npm ERR! node_modules/react-dom npm ERR! peer react-dom@"^17.0.2 || ^18.0.0" from react-native-web@0.18.10 npm ERR! node_modules/react-native-web npm ERR! react-native-web@"^0.18.10" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
示例Dockerfile
FROM node:alpine RUN mkdir /app WORKDIR /app COPY package.json /app RUN npm install react-native-web COPY . /app EXPOSE 8080 CMD [ "npm", "run", "web" ]
解决方案
方案1:升级React版本匹配依赖要求
项目当前React版本为18.1.0,而react-dom@18.2.0要求peer依赖React版本为^18.2.0,直接升级React即可解决冲突:
npm install react@18.2.0 --save npm install react-native-web
方案2:使用npm兼容参数跳过Peer依赖检查
如果暂时无法升级React,可使用npm提供的参数强制跳过依赖冲突检查:
# 使用legacy-peer-deps(推荐,恢复npm v6的依赖解析逻辑) npm install react-native-web --legacy-peer-deps # 或使用force(强制安装,可能引入未知兼容性问题) npm install react-native-web --force
方案3:修改Dockerfile中的安装命令
如果是在Docker环境中执行安装,直接修改Dockerfile里的RUN指令,加入兼容参数:
FROM node:alpine RUN mkdir /app WORKDIR /app COPY package.json /app RUN npm install react-native-web --legacy-peer-deps COPY . /app EXPOSE 8080 CMD [ "npm", "run", "web" ]
内容的提问来源于stack exchange,提问作者RadiumBall
相关产品推荐
相关产品推荐

