用于众所周知的原因,Stackoverflow,Github等技术相关网站在国内访问速度一直不快,Composer 也不例外。
有什么方法可以让它变得快一点。
一、心理上变快
在
Drupal Composer 系列一:初识
中,提到过在 Composer 相关命令后加 -vvv,它应该可以让人从心理上感觉 Composer 快了不少。至少在“动”,而不是“卡”在那里。
二、使用镜像:Packagist / Composer 中国全量镜像
和其他类似工具一样,如 NPM, 在国内有免费镜像可以使用。Composer 镜像则推荐使用 Packagist / Composer 中国全量镜像。
https://www.phpcomposer.com/
它的使用方式很简单,一行命令即可:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
以上是全局的方式,其他使用方式请参考其官网文档。
使用镜像有一点不足是,偶尔可能会有滞后,在使用的时候有的依赖还没有被同步过来。
三、使用开源软件 toran 自建 Composer 镜像服务器:
镜像服务器也可以称为代理服务器,在这里不加区别。
如果已经安装了 docker 和 docker-compose,部署一个 Composer 镜像服务器就是一个配置文件加一行命令的事。
还有一个前提是需要有一个在国外的服务器。
一个配置文件即 docker-compose.yml,示例内容如下:
version:"2"
services:
toran:
image:cedvan/toran-proxy:1.5.4
container_name:toran
volumes:
- ./data:/data/toran-proxy
ports:
- 80:80
environment:
- TORAN_HOST=packagist.jungleran.com
- TORAN_CRON_TIMER=hour
- TORAN_AUTH_ENABLE=true
- TORAN_AUTH_USER=jungle
- TORAN_AUTH_PASSWORD=jungle
Toran Docker 镜像链接:
https://hub.docker.com/r/cedvan/toran-proxy/
一条命令即
docker-compose up -d
然后一个属于的自己 Composer 镜像服务器就架好了。
使用自定义镜像服务器时,composer.json 文件示例配置如下:
{
"name":"jungle/demo",
"description":"demo",
"type":"project",
"repositories": [
{
"type":"composer",
"url":"http://packagist.jungleran.com/repo/packagist/"
},
{"packagist":false}
],
"config": {
"secure-http":false,
"http-basic": {
"packagist.iegio.com": {
"username":"jungle",
"password":"jungle"
}
}
}
}
关键在 repositories 和 config 部分,其中:
示例中没有配置 https,所以设置 secure-http 为 false
示例中的 Toren 服务器启用了简单的密码保护,阻止未授权的访问,账号密码均为:jungle,在 composer.json 文件中,其对应的设置为 http-basic 部分
当前,我自己有在使用自建镜像服务器。
四、更快:并行
Composer 本身并不支持并行,有人已经开发了一个 Composer 插件,可以实现并行。
项目代码库:
https://github.com/hirak/prestissimo
安装:
composer global require hirak/prestissimo
以上是全局安装,更多请访问该项目文档。
(正文完)
可能是一段代码的分析,也可能是一个模块介绍,可能是一个架构分享,也可能是分享如何解决一个具体的问题。任何 Drupal 相关的文字,都有可能会出现在这里。
如果需要加入Drupal重庆微信群,请先添加我的个人微信号:twitteran,再通过邀请方式加入。
领取专属 10元无门槛券
私享最新 技术干货