我有两个 Expo (React Native) 应用程序,它们共享大部分代码并且已经投入生产。我们正在尝试将它们移动到 monorepo 目录结构,如下所示:
lerna.json
package.json
packages/
mobile-1/
app.json
index.js
package.json
mobile-2/
app.json
index.js
package.json
mobile-common/
src/
... actual app code ...
index.js
package.json
我们的设置工作的方式是我们导出一个启动应用程序的函数,mobile-common/index.js
并且mobile-{1,2}/index.js
应该使用每个函数特定的初始化参数来调用这个函数。
此设置的问题在于mobile-common
使用react-native
和expo
依赖项,这也是exp
启动 React Native 打包程序所必需的,这在构建时会导致某些问题。我们尝试了以下方法:
- 将
mobile-common
,expo
和添加到和做react-native
的依赖项中 。这允许我们运行打包程序,但移动应用程序在构建时会崩溃,因为它们会发现重复的依赖项。mobile-{1,2}/package.json
lerna bootstrap
- 我们也从来没有让纱线工作区工作。
lerna bootstrap --hoist
也没有工作。npm link
在构建时还会产生具有重复依赖项的问题。
我们真的很想转向这种结构,因为我们以前的结构不容易让我们同时运行两个应用程序,而且它变得越来越有必要。
感谢您帮助我们!