2017-11-16 7 views
2

Ich versuche, meine composer install Prozess für ein Projekt zu optimieren. Ich habe Prestissimo installiert, alle meine Dev-Abhängigkeiten in 'require-dev' verschoben und 'preferred-install' auf 'dist' in meiner Datei composer.json gesetzt. All dies hat die Installation von ~ 4 Minuten auf ~ 2 Minuten reduziert.In Composer, warum einige Abhängigkeiten 'Load' aus dem Cache und einige 'Clone' aus dem Cache

Meine Abhängigkeiten enthalten einige meiner eigenen privaten Repos, die auf Gitlab sind, und wenn ich den Composer-Installationsprozess sehe, sagen meine Repos "Cloning from cache" und nehmen jeweils ein paar Sekunden zur Verarbeitung, während alle anderen Abhängigkeiten sagen ' Laden aus dem Cache 'und verarbeiten Sie so ziemlich sofort.

Hier ist der composer.json

{ 
    "name": "my-project", 
    "description": "My Project", 
    "minimum-stability": "stable", 
    "require": { 
     "toruinteractive/ti-cms": "0.13.1" 
    }, 
    "require-dev" : { 
     "yiisoft/yii2-debug": "^[email protected]" 
    }, 
    "config": { 
     "fxp-asset": { 
      "installer-paths": { 
      "npm-asset-library": "vendor/npm", 
      "bower-asset-library": "vendor/bower" 
      } 
     }, 
     "process-timeout": 1800, 
     "preferred-install" : "dist" 
    }, 
    "extra": { 
     "require-bower" : { 
      "angular-elastic" : "2.5.*", 
      "angular-trix" : "1.0.2", 
      "aos":"2.1.1", 
      "handlebars" : "4.0.*", 
      "bootstrap-toggle" : "^2.2.2", 
      "image-map-resizer" : "1.0.*" 
     } 
    }, 
    "repositories": [ 
     { "type": "git", "url" : "[email protected]:ti-cms/ti-banner.git" }, 
     { "type": "git", "url" : "[email protected]:ti-cms/ti-blog.git" }, 
     { "type": "git", "url" : "[email protected]:ti-cms/ti-suggest.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-cms.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-dashboard.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-file.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-image.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-export-import.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-login.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-navbar.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-page.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-search.git" }, 
     { "type": "git", "url": "[email protected]lab.com:ti-cms/ti-slides.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-superadmin.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-translator.git" }, 
     { "type": "git", "url": "[email protected]:ti-cms/ti-tree.git" } 
    ] 
} 

und hier ist der composer install Ausgang ...

ghost$ composer install 
Loading composer repositories with package information 
Installing dependencies (including require-dev) from lock file 
Package operations: 45 installs, 0 updates, 0 removals 
    - Installing yiisoft/yii2-composer (2.0.5): Loading from cache 
    - Installing bower-asset/jquery (3.2.1): Loading from cache 
    - Installing bower-asset/bootstrap (v3.3.7): Loading from cache 
    - Installing bower-asset/inputmask (3.3.10): Loading from cache 
    - Installing bower-asset/punycode (v1.3.2): Loading from cache 
    - Installing bower-asset/yii2-pjax (2.0.7.1): Loading from cache 
    - Installing cebe/markdown (1.1.2): Loading from cache 
    - Installing ezyang/htmlpurifier (v4.9.3): Loading from cache 
    - Installing psr/log (1.0.2): Loading from cache 
    - Installing monolog/monolog (1.23.0): Loading from cache 
    - Installing paragonie/random_compat (v2.0.11): Loading from cache 
    - Installing phenx/php-font-lib (0.4): Loading from cache 
    - Installing phenx/php-svg-lib (0.1): Loading from cache 
    - Installing phpoffice/phpexcel (1.8.1): Loading from cache 
    - Installing yiisoft/yii2 (2.0.13.1): Loading from cache 
    - Installing bower-asset/jquery-ui (1.11.4): Loading from cache 
    - Installing yiisoft/yii2-jui (2.0.6): Loading from cache 
    - Installing yiisoft/yii2-bootstrap (2.0.7): Loading from cache 
    - Installing yiisoft/yii2-httpclient (2.0.5): Loading from cache 
    - Installing yiisoft/yii2-authclient (2.1.4): Loading from cache 
    - Installing toruinteractive/ti-tree (0.13.1): Cloning 867ff3625c from cache 
    - Installing toruinteractive/ti-translator (0.13.1): Cloning eec41060e4 from cache 
    - Installing toruinteractive/ti-superadmin (0.13.1): Cloning a783cd0bb9 from cache 
    - Installing toruinteractive/ti-suggest (0.13.1): Cloning b52895d1ab from cache 
    - Installing toruinteractive/ti-slides (0.13.1): Cloning e0a5f9738f from cache 
    - Installing toruinteractive/ti-search (0.13.1): Cloning a2e1f8ac89 from cache 
    - Installing toruinteractive/ti-page (0.13.1): Cloning 9b3653a648 from cache 
    - Installing toruinteractive/ti-navbar (0.13.1): Cloning 711fe81e0a from cache 
    - Installing toruinteractive/ti-login (0.13.1): Cloning e7f64c010b from cache 
    - Installing imagine/imagine (v0.6.3): Loading from cache 
    - Installing flowjs/flow-php-server (v1.0.3): Loading from cache 
    - Installing toruinteractive/ti-image (0.13.1): Cloning 5089e00de0 from cache 
    - Installing toruinteractive/ti-file (0.13.1): Cloning 68ec65c025 from cache 
    - Installing arogachev/yii2-excel (0.1.1): Loading from cache 
    - Installing toruinteractive/ti-export-import (0.13.1): Cloning cd8309c01d from cache 
    - Installing toruinteractive/ti-dashboard (0.13.1): Cloning ccb9d159e4 from cache 
    - Installing toruinteractive/ti-blog (0.13.1): Cloning e0d3296d01 from cache 
    - Installing toruinteractive/ti-banner (0.13.1): Cloning cadf895998 from cache 
    - Installing sentry/sentry (0.17.0): Loading from cache 
    - Installing ramsey/uuid (3.7.1): Loading from cache 
    - Installing mandrill/mandrill (1.0.55): Loading from cache 
    - Installing fightbulc/moment (1.26.10): Loading from cache 
    - Installing dompdf/dompdf (v0.7.0): Loading from cache 
    - Installing toruinteractive/ti-cms (0.13.1): Cloning 6fd9d9fe53 from cache 
    - Installing yiisoft/yii2-debug (dev-master b2cd366): Loading from cache 
Generating autoload files 

Also meine Frage ist, wie kann ich meine eigenen Pakete ‚Last‘ aus dem Cache machen zu beschleunigen mein Installationsprozess?

Antwort

1

Ich denke, das ist nur der Unterschied zwischen Git-Repos und vorbereitete Pakete, das Klonen eines Git-Repo vs eine dist (zip/tar) -Datei. Sobald die gezippte Zip-Datei zwischengespeichert ist, muss sie einfach entpackt werden und Sie sind fertig.

Für ein Git Repo, Klonen ist eine Operation, die ein wenig mehr Zeit benötigt, es ist wahrscheinlich über das Netzwerk gehen, um sicherzustellen, dass die zwischengespeicherte Repo immer noch auf dem neuesten Stand ist, dann die tatsächlichen zwischengespeicherten Repo zu Arbeitsverzeichnis Klonen.

Wenn Sie möchten, dass Ihre eigenen Pakete aus dem Cache geladen werden, versuchen Sie, sie im Format dist (zip/tar) zu verteilen.

Verwandte Themen