reactjs 如何解决AWS Amplify引起的对等依赖问题?

f87krz0w  于 2023-01-08  发布在  React
关注(0)|答案(1)|浏览(168)

我有一个问题,我的React建设,也许与AWS放大,但我有麻烦牵制下来。
当它启动的时候,我可以在本地运行我的程序,没有任何问题。我把它上传到GitHub,我的CI/CD设置和amplify试图构建它。Amplify说它在构建过程中坏了。在那一刻,我发现我不能运行npm update。
我已经把它弄得一团糟了,可能已经把环境弄得更糟了。如果有人有任何建议,我真的很感激。
我最初遇到的错误是这样的:

npm WARN ERESOLVE overriding peer dependency
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: react-drag-drop-files@2.3.7
npm ERR! Found: react@16.14.0
npm ERR! node_modules/react
npm ERR!   peer react@"18.1.0" from react-native@0.70.6
npm ERR!   node_modules/react-native
npm ERR!     peer react-native@">=0.56" from react-native-get-random-values@1.7.0
npm ERR!     node_modules/react-native-get-random-values
npm ERR!       react-native-get-random-values@"^1.4.0" from @aws-sdk/middleware-retry@3.6.1
npm ERR!       node_modules/@aws-sdk/middleware-retry
npm ERR!         @aws-sdk/middleware-retry@"3.6.1" from @aws-sdk/client-cognito-identity@3.6.1
npm ERR!         node_modules/@aws-sdk/client-cognito-identity
npm ERR!         11 more (@aws-sdk/client-comprehend, ...)
npm ERR!     peer react-native@"^0.0.0-0 || 0.60 - 0.71 || 1000.0.0" from @react-native-async-storage/async-storage@1.17.11
npm ERR!     node_modules/@react-native-async-storage/async-storage
npm ERR!       peer @react-native-async-storage/async-storage@"^1.13.0" from @aws-amplify/core@4.0.2
npm ERR!       node_modules/@aws-amplify/core
npm ERR!         @aws-amplify/core@"4.0.2" from @aws-amplify/analytics@5.0.0
npm ERR!         node_modules/@aws-amplify/analytics
npm ERR!         11 more (@aws-amplify/api-graphql, @aws-amplify/api-rest, ...)
npm ERR!       1 more (amazon-cognito-identity-js)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^18.0.0" from react-drag-drop-files@2.3.7
npm ERR! node_modules/react-drag-drop-files
npm ERR!   react-drag-drop-files@"^2.3.7" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: react@18.2.0
npm ERR! node_modules/react
npm ERR!   peer react@"^18.0.0" from react-drag-drop-files@2.3.7
npm ERR!   node_modules/react-drag-drop-files
npm ERR!     react-drag-drop-files@"^2.3.7" from the root project

完全卸载react-drag-drop-files也没有帮助,它只是用另一个依赖问题代替了它;
我看到的建议大多是在执行npm配置设置legacy-peer-deps=true后重新安装。这看起来并不理想,但我找不到如何实际解决依赖冲突的具体描述。我尝试卸载并重新安装相关模块,但没有工作。
最后,我试着启用旧的peer deps,删除我的模块,然后重新安装。这也不起作用,当我试图在本地运行时,留下了这个错误:
./节点模块/aws放大React/lib-esm/放大UI/放大UI组件-React. js尝试导入错误:“a”未从“@aws-amplify/ui”中导出(作为“AmplifyUI”导入)。
我也不能解决这个问题,所以我再次删除模块,再次运行npm install,现在我又回到了最初的错误。

ej83mcc0

ej83mcc01#

我也遇到过同样的问题,但是使用--legacy-peer-deps应该可以,但是你可能只是在本地运行它,而不是在Amplify中构建应用程序的时候。
进入AWS Amplify中的应用程序,从侧边栏菜单中选择构建设置。

preBuild:
 commands:
   - npm ci

其中:

preBuild:
 commands:
   - npm ci --legacy-peer-deps

至少对我来说是这样的,希望对我有帮助!
文件:https://docs.aws.amazon.com/amplify/latest/userguide/build-settings.html

相关问题