我已经使用react-native-create-library
命令创建了一个React Native库项目来为我的开发提供更多的模块化环境,因此以后我可以将该库用于多个正在进行的应用程序项目并消除代码重复。对于Java,它特别适用于外部应用程序活动调用,文件上传以及事件和手势处理。
问题是当我尝试在库项目中包含Javascript代码时。一开始,当我像往常一样尝试将其导入时,Metro Bundler显示此错误
无法从以下位置解析模块
react
C:\Users\USER\AppData\Local\Yarn\Data\link\react-native-library\JSLib.js
: 急速模块图中不存在模块react
我很快就认为原因是因为在.yarn-integrity
文件旁边,库项目在node_modules
目录内没有任何包。所以我试图做yarn add react
来用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,但尚未找到任何解决方案。最好的回答是说我们不能符号链接到一个程序包。
我所需要知道的是如何使用库项目中的软件包模块。任何答复或帮助,我们将不胜感激。预先谢谢你。
我尝试过yarn add --peer
。它适用于反应,但不适用于反应导航和其他依赖项。
我会看到诸如 react-native-modal 之类的其他软件包,只是将诸如 react-native-animatable 之类的其他依赖项作为 package.json 中的“非对等” 依赖性。将其安装到应用程序项目中后,两者都被放入应用程序的 node_modules 中,并且它们可以正常工作。
但是,如果我直接将依赖项安装到应用程序项目中以模仿生产安装的工作方式,则会失败,并显示相同的错误。它们之间的区别是在我的项目中,它使用符号链接引用(在 Windows 上称为 junction )。
所以我认为符号链接是这里的问题,还是我错过的东西,我一点都不知道。