You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建含两个Expo项目与一个Express的Monorepo并实现依赖共享

你的目录结构方案完全可行

这个分层共享依赖的思路非常清晰,完美匹配你的需求:

  • 根目录package.json统一管理三个项目都需要的依赖(比如moment.js)
  • apps/expo/package.json专门存放两个Expo项目(office、patient)共享的react-native、expo等依赖
  • 各子项目的package.json只保留自己的专属依赖

不过要让这个方案顺畅运行,需要注意几个关键配置:

1. 配置包管理工具的工作区

不管用npm、yarn还是pnpm,都需要在根目录的package.json里配置工作区,告诉工具哪些目录是独立项目。以npm为例,根package.json要加:

{
  "workspaces": [
    "apps/backend",
    "apps/expo/office",
    "apps/expo/patient"
  ]
}

这样工具会自动处理依赖的共享与安装,避免重复下载相同依赖,同时保证各项目能正确访问共享依赖。

2. 注意Expo项目的版本一致性

Expo对依赖版本(尤其是expo SDK、react-native)要求严格,apps/expo/package.json里的共享依赖版本,必须和office、patient项目的要求完全匹配,否则容易出现构建或运行错误。

3. 正确安装依赖的方式

  • 安装全局共享依赖(比如moment.js):在根目录执行 npm install moment
  • 安装Expo共享依赖(比如expo):可以进入apps/expo目录执行 npm install expo,或者在根目录用工作区命令:npm install expo --workspace=apps/expo(npm 7+支持)
  • 安装项目专属依赖:直接进入对应子目录执行 npm install [依赖名],或者用--workspace参数指定项目

如果用pnpm的话,它的依赖隔离和共享效率更高,更适合这种多项目场景,只需要额外配置pnpm-workspace.yaml来定义工作区范围即可。

内容的提问来源于stack exchange,提问作者J Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 06:32:38