我使用创建了一个 React Native 库项目react-native-create-library
命令为我的开发提供更加模块化的环境,因此稍后我可以将该库用于多个正在进行的应用程序项目并消除代码重复。对于 Java,它非常适合外部应用程序活动调用、文件上传以及事件和手势处理。
问题是当我尝试在库项目中包含 Javascript 代码时。开始时,当我尝试像往常一样导入它时,Metro Bundler 显示此错误
无法解析模块react
from
C:\Users\USER\AppData\Local\Yarn\Data\link\react-native-library\JSLib.js
:
模块react
急速模块图中不存在
我很快就认为原因是因为除了.yarn-integrity
文件,库项目里面没有任何包node_modules
目录。所以我尝试做yarn add react
用反应包加载它。从应用程序项目重新编译后,Metro Bundler 现在显示此错误
捆绑失败:解析不明确:模块 C:\Users\USER\Desktop\test\index.js 尝试要求react-native,但有几个文件提供此模块。您可以删除或修复它们:
*C:\Users\USER\AppData\Local\Yarn\Data\link\react-native-library\node_modules\react-native\package.json
*C:\Users\USER\Desktop\test\node_modules\react-native\package.json
我已提出问题here https://github.com/frostney/react-native-create-library/issues/89但尚未找到任何解决方案。最好的回应是说我们无法符号链接到包。
我需要知道的是如何使用库项目中的包模块。非常感谢任何回应或帮助。先感谢您。
我努力了yarn add --peer
。它正在为react但不适用于其他依赖项,例如反应导航和别的。
我会看到其他一些软件包,例如反应本机模态只需放置其他依赖项,例如反应本机动画例如,作为“不是同行”依赖于包.json。当它安装到应用程序项目中时,两者都被放入应用程序的节点模块他们工作得很好。
但是,如果我直接将依赖项安装到应用程序项目以模仿生产安装的工作方式,则会失败并出现相同的错误。它们之间的区别是在我的项目中它使用符号链接引用(称为junction on Windows).
所以我认为要么符号链接是这里的问题,要么是我错过了一些我根本不知道的问题。