我可以为React Native macOS应用程序和React Native Windows应用程序使用相同的代码库吗



我正在尝试使用React Native创建一个在iOS, Android, macOS和Windows上运行的应用程序。使用React Native的一个好处是,你可以在平台之间共享代码。

我正在遵循React Native macOS和Windows的设置指南,但在指南中,他们指导您从头开始为每个平台创建新应用程序。由于我想使用相同的应用程序,所以我不必编写相同的代码两次,我按照指南创建了macOS应用程序。然后,在这个应用程序中,我使用Windows指南中的命令npx react-native-windows-init --overwrite来初始化Windows平台。但是当我使用命令npx react-native run-macos运行macOS应用程序时,我得到错误:

找不到模块'metro-config/src/defaults/exclusionList'

没有bundle URL存在

我觉得设置指南很奇怪的一件事是,对于macOS,它告诉你使用React Native 0.63,而对于Windows 0.66。我用了0.66,也许这就是问题所在。但如果是这样,而且每个平台都需要不同版本的React Native,我该如何在两个平台上使用同一个应用程序/代码库呢?这违背了React Native的核心前提之一:

创建组件的平台特定版本,以便单个代码库可以跨平台共享代码。

是否有可能为两个桌面平台创建一个应用程序,就像你在iOS和Android上所做的那样,如果可以,如何做?


可以。您必须创建一个mono仓库或者您可以使用mono repo样板。这里有一个链接https://github.com/mmazzarolo/react-native-universal-monorepo

相关内容