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

如何让独立Composer项目本地复用相同版本依赖包文件?

我能否在开发独立Composer项目时,共享相同版本的依赖包,且本地不重复存储每个复用的依赖包文件? 这是具体问题。不过我是包管理器新手(但熟悉PHP),因此若问题表述有误,以下是引出该问题的抽象需求与实际场景。

澄清说明

已有不少类似问题被提出并解答。以下是我并非要询问的内容:

  • 我并非质疑Composer为单个项目管理包的核心设定。
  • 我并非要协调那些设计上就共享依赖的关联项目,这些都是独立项目。
  • 我不想改变本地与生产环境的协作方式。
  • 我并非询问包的管理,而是包管理器的文件管理。
  • 我并非要在单个项目中使用同一包的两个版本,不过不同项目可能使用不同版本。
  • 我并非要混合自定义本地包与公共Packagist包。
  • 我并非要优化下载,而是优化存储与上传。

这能解决什么问题?

我习惯同时使用云存储、版本控制与包管理器。Git与包管理器配合良好,我使用Git和OneDrive已有一段时间,虽协作不算完美但能用。我常手动进行大范围重构,因此常会有大量未提交的修改,直到找到并测试出最佳重构方案。OneDrive备份当前状态,Git记录历史,GitHub为历史提供冗余与协作能力。在使用Composer前,我通常一次只修改一个文件,OneDrive能承受同步负担;但现在添加/修改包时,它就会卡顿。这很合理,因为许多包会添加大量文件,每个文件都需要单独的同步记录,但我其实不需要同步这些包管理的文件。

我设想了一种解决方案:每个项目都是正常的Composer项目,但本地Composer将包版本安装到全局位置,并在项目中添加指向实际使用包版本的指针。这样云存储只会同步我的工作文件与符号链接(symlinks),不会同步链接背后的包管理文件;其他开发者仍可从GitHub克隆项目而不会克隆我的符号链接;本地存储也能跨项目高效利用。不过手动管理符号链接与版本既繁琐又容易出错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 19:12:08