一、场景说明
当 composer install/require 命令因网络、权限等问题失败时,可通过手动复制依赖包的方式迁移项目依赖。以下以 ThinkPHP5(FastAdmin 框架)为例,详细说明操作步骤。
二、操作步骤
前提条件:需准备一个已正确安装依赖的源网站(A 网站)和目标网站(B 网站)。
1. 复制 composer.json 配置
- 操作::::将 A 网站根目录的
composer.json中与依赖相关的内容(如require、require-dev、autoload字段)复制到 B 网站的composer.json对应位置。
2. 迁移依赖包文件
操作:
- 在 A 网站的
vendor文件夹中,找到需要迁移的依赖包文件夹(如topthink/think、fastadmin/fastadmin)。 - 将这些文件夹复制到 B 网站的
vendor文件夹下(若 B 网站无vendor文件夹,需先创建)。
- 在 A 网站的
3. 同步依赖安装记录
操作:
- 复制 A 网站
vendor/composer/installed.json文件中的内容。 - 将内容覆盖到 B 网站的
vendor/composer/installed.json中(若文件不存在,需手动创建)。
- 复制 A 网站
- 作用:该文件记录了依赖包的版本和安装状态,确保 Composer 识别已安装的依赖。
4. 重建自动加载文件
操作:在 B 网站根目录执行命令:
composer dump-autoload
三、注意事项
依赖完整性:
- 需确保复制的依赖包完整,避免遗漏子依赖(如
topthink/think可能依赖illuminate/support等)。 - 推荐通过 A 网站的
composer show -i命令查看完整依赖列表。
- 需确保复制的依赖包完整,避免遗漏子依赖(如
版本兼容性:
- B 网站的
composer.json配置需与 A 网站一致,避免因版本冲突导致错误。
- B 网站的
权限问题:
- 复制后的
vendor文件夹需确保 Web 服务器有读取权限(Linux 系统中可执行chmod -R 755 vendor)。
- 复制后的
通过以上步骤,可在不使用 composer install 命令的情况下完成依赖迁移,适用于服务器环境受限或网络不稳定的场景。