使用 PNPM 反应原生 monorepo

Pet*_*pác 4 react-native monorepo pnpm

我的目标

\n

我正在尝试将 React Native monorepo 与 PNPM 一起使用,因为我需要 pnpm 的性能。

\n

预期的

\n

我应该能够将 React 本机应用程序与 捆绑在一起,pnpm android并使用pnpm start.

\n

实际结果

\n

我可以捆绑应用程序,但无法启动 Metro 服务器。我总是收到此错误:在此输入图像描述

\n

更多信息

\n

我有节点 v16.14.2,反应本机 v0.69。

\n

我知道默认的 Metro 捆绑程序不支持 pnpm 使用的符号链接(https://github.com/pnpm/pnpm/issues/1252#issuecomment-667600769),所以我尝试在以下位置修补 Metro metro.config.js:\n地铁配置.js

\n

这与纯 React 本机存储库完美配合,例如: https: //github.com/gjhughes/react-native-pnpm-example

\n

我的项目结构如下所示:

\n
project\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80shared\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80backend\n\xe2\x94\x82   \xe2\x94\x82   package.json\n\xe2\x94\x82   \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80frontend\n\xe2\x94\x82   \xe2\x94\x82   package.json\n\xe2\x94\x82   \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80mobile-app\n\xe2\x94\x82   \xe2\x94\x82   package.json\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的pnpm-workspace.yaml

\n

pnpm-workspace.yaml

\n

我很绝望。有可能吗?

\n

如果您还有其他疑问,请随时提问!

\n

Zol*_*han 9

使用不带符号链接的 pnpm。.npmrc使用以下设置在 monorepo 的根目录中创建一个:

node-linker=hoisted
Run Code Online (Sandbox Code Playgroud)

删除 node_modules 并运行pnpm install. 相关文档: https: //pnpm.io/npmrc#node-linker

  • 这破坏了一切,我必须更改“settings.gradle”中的所有路径,即使这样我也无法捆绑该应用程序。符号链接问题应该由“@rnx-kit”解决,它可能与 pnpm 工作空间存在问题。 (2认同)