Laravel 安装和开发环境:修改项目依赖为新的镜像地址
前置说明
Laravel China 镜像已停止服务,请使用其他镜像。
本文以从 pkg.phpcomposer.com 镜像切换到 packagist.laravel-china.org 为例子来讲解。请自行修改命令行中对应的链接。
问题说明
Composer 在安装时会在 composer.lock
文件中写入扩展包下载地址,如:
一些年代久远的项目中使用了 pkg.phpcomposer.com/ 的中文加速镜像,然后最近因为其镜像访问出了故障:
运行 composer install
后会出现 404 并从源仓库开始下载,导致下载速度非常慢。这种情况即使是你全局配置了加速镜像也会出现:
问题: 如何把 composer.lock
文件里的这些 "url": "https://packagist.phpcomposer.com/file...
下载地址变为新的加速进行的地址呢?
解决方案
1. 配置新镜像
首先配置你的新镜像为全局镜像:
$ composer config -g repo.packagist composer https://packagist.laravel-china.org
2. 刷新 composer.lock 文件
使用以下命令:
$ composer update nothing
或者:
$ composer update --lock
–lock:只升级 lock 文件的哈希以消除 lock 文件过期的警告。
执行成功后:
3. 测试一下
清空本地缓存:
$ rm -rf vendor
$ composer clear-cache
执行安装命令:
$ composer install -vvv
享受高速下载:
常见问题
问: 此操作是否会升级依赖版本?
答: 不会,只会在 composer.lock
中将旧的依赖下载地址更新为新的,版本保持不变。
问: 线上环境里已经下载了依赖到 vendor
文件夹,是否需要删了再重新下载?
答: 不需要,如上所讲,只是更新了下载链接,代码包连哈希都是一样,无需重新下载。
composer update nothing 很优雅,之前我都建议暴力删除 rm composer.lock 了
速度也快不到多少
@扣丁禅师 我现在都是在 CLI 挂梯子,laravel china 的镜像真的是慢。。。可能水管小吧!而且一些包镜像延迟很大!
这个很棒
从laravel china镜像即将下线的公告过来,问下:
做完composer update --lock之后,一定有必要做
$ rm -rf vendor
$ composer clear-cache
这两步吗?
主要是不想服务端中断。
现有的vendor继续用不行吗?
贴下可其他可替换的源:
阿里 - https://mirrors.aliyun.com/composer/
腾讯 - https://mirrors.cloud.tencent.com/composer...
按照上面的操作了一边 在更新到一半的时候 提示要输入账号密码