Kha*_*ada 4 cocoapods react-native yarn-workspaces
以下是 Stack Overflow 问题描述和标题的建议,可帮助您使用 Turborepo 和 Yarn 工作区打开 React Native monorepo 的问题:
标题:使用 Turborepo 和 Yarn 工作区的 React Native monorepo 中的 Pod 出现错误
描述:
我正在尝试使用 Turborepo 和 Yarn Workspaces 为 React Native 项目设置 monorepo,但我遇到了 Pod 错误。错误信息是:
An error occurred while processing the post-install hook of the Podfile.
Run Code Online (Sandbox Code Playgroud)
没有这样的文件或目录@ rb_sysopen - ../node_modules/react-native/package.json
我尝试了各种方法来解决该问题,例如符号链接 node_module/react-native 目录,但到目前为止没有任何效果。我希望找到解决此问题的方法,或者更好地了解可能导致此问题的原因。
有其他人在 React Native monorepo 中使用 Turborepo 和 Yarn Workspaces 时遇到此错误吗?如果有,您是如何解决的?
Lau*_*uer 11
发生这种情况是因为你必须告诉 Cocoapods 在哪里可以找到 React Native 包。默认情况下,它会看起来在上面一个目录 (./..),这在使用纱线工作区重新组织代码库后是不正确的。
对此有两种解决方案。你可以选择任何一种方式。
noHoist这可以通过顶部包 json 中的选项来实现。
...
"workspaces": {
"packages": [
"./apps/*",
"./packages/*"
],
"nohoist": [
"**/react-native",
"**/react-native/**"
]
},
...
Run Code Online (Sandbox Code Playgroud)
(您需要删除node_modules文件夹和锁定文件才能生效)
现在,如果您重新安装节点模块,react-native 将像往常一样出现在您的应用程序项目目录中,并且 CocoaPods 将能够找到它
如果你像这样移动你的项目 app => apps/app 那么你必须在 Podfile 中更改 3 件事
require_relative,应该位于 podfile 中的第 2 行和第 3 行react_native_path参数react_native_post_installrequire_relative '../../../node_modules/react-native/scripts/react_native_pods'
require_relative '../../../node_modules/@react-native-community/cli-platform-ios/native_modules'
...
react_native_post_install(
installer,
react_native_path = "../../../node_modules/react-native",
:mac_catalyst_enabled => false
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |