首页 > 解决方案 > 为什么在运行 react-native 运行后,说我“无法解析模块”+ lerna

问题描述

我有一个带有 lerna 的 monorepo 项目,并且我在 monorepo 文件夹中有应用程序、Web 和通用包。我的应用程序包是 react-native 项目,我的 web 包是 react-native-web 项目。我从 lerna add 命令在 web 和应用程序包中添加了公共依赖项。我的网络项目的结果很好,但是当我运行应用程序项目时,提醒我“无法解析模块”。而我在应用程序包根目录的 node_modules 文件夹中找到了 common 文件夹。为什么 react-native 没有找到我的共同依赖项?

在此处输入图像描述

在此处输入图像描述

标签: node.jsreact-nativeyarnpkglernareact-native-web

解决方案


我认为问题在于 Metro 忽略了 smylink。我已经在谷歌上搜索了几个小时,终于找到了一个适用于"react-native": "^0.61.5"and的修复程序metro "^0.54.1"(我认为这也是最干净的解决方案)。

就是这个包:https ://www.npmjs.com/package/@carimus/metro-symlinked-deps

因此,您只需要metro.config.js根据文档更改您的共享 lerna 包,并且不要忘记将您的共享 lerna 包添加到package.json您将要使用它的包中(这看起来与我的其他包有点不同,我可以导入共享一个没有 package.json 条目)。


推荐阅读