Drupal Composer 系列二:更快

用于众所周知的原因,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 部分

 

packagist.jungleran.com 则为服务器的访问地址(仅为示例地址,实际不存在)

 

当前,我自己有在使用自建镜像服务器。

 

四、更快:并行

 

Composer 本身并不支持并行,有人已经开发了一个 Composer 插件,可以实现并行。

 

项目代码库:

 

https://github.com/hirak/prestissimo

 

安装:

 

composer global require hirak/prestissimo

 

以上是全局安装,更多请访问该项目文档。

评论 (写第一个评论)