我的目标
我正在尝试使用React native monorepo和PNPM,因为我需要pnpm的性能。
预期
我应该能够将React原生应用程序与pnpm android
捆绑在一起,并使用pnpm start
启动开发服务器。
实际结果
我可以捆绑应用程序,但 * 我不能启动地铁服务器 *。我总是得到这个错误:x1c 0d1x的数据
更多信息
我有node v16.14.2,react native v0.69。
我知道默认的metro bundler不支持pnpm使用的符号链接(https://github.com/pnpm/pnpm/issues/1252#issuecomment-667600769),所以我尝试在metro.config.js
中修补metro:
的
这在纯React原生repo中工作得很好,就像这里例如:https://github.com/gjhughes/react-native-pnpm-example
我的项目结构看起来像这样:
project
└───shared
└───backend
│ │ package.json
│
└───frontend
│ │ package.json
│
└───mobile-app
│ │ package.json
字符串
以下是我的pnpm-workspace.yaml
:
的
我绝望了。这可能吗
如果你还有什么问题,尽管问!
3条答案
按热度按时间u3r8eeie1#
使用不带符号链接的pnpm。在monorepo的根目录下创建一个
.npmrc
,设置如下:字符串
删除node_modules并运行
pnpm install
。相关文档:https://pnpm.io/npmrc#node-linkeriaqfqrcu2#
你好,我做了一个与monorepos工作的样板文件,以防你需要它
使用react-native 0.72.1在一个monorepo上,比如喜欢它的turbo;)
https://github.com/Morraycage/turbo-react-native-boilerplate
hrirmatl3#
在
.npmrc
中,您可以执行以下操作:看看是否有任何问题与符号链接,使任何工作,你可以开始
字符串
但这将完全破坏拥有
pnpm
的意义对我来说,这些线做的工作,并准备在必要时延长
型
(note默认情况下重用的
eslint
和prettier
)更多详情请参见https://pnpm.io/npmrc#hoist-pattern