Richtige Bereitstellung bei Verwendung des Entwicklungs- / Produktionsschalters von Composer
Composer bietet die Möglichkeit, mehrere Abhängigkeiten nur während der Entwicklung zu laden, sodass die Tools nicht in der Produktion (auf dem Live-Server) installiert werden. Dies ist (theoretisch) sehr praktisch für Skripte, die nur in der Entwicklung Sinn machen, wie Tests, Fake-Data-Tools, Debugger usw.
Der Weg zu gehen ist, eine zusätzliche hinzuzufügenrequire-dev
Blockieren Sie mit den Tools, die Sie in dev benötigen:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
und laden Sie diese Abhängigkeiten dann (theoretisch) über
composer install --dev
Problem & Frage:Composer hat das Verhalten von geändertinstall
undupdate
dramatisch im Jahr 2013,require-dev
-abhängigkeiten sind jetzt standardmäßig installiert (!), zögern Sie nicht, eine composer.json mit einem zu erstellenrequire-dev
blockieren und durchführencomposer install
reproduzieren.
Die am häufigsten akzeptierte Bereitstellungsmethode ist das Pushen des Composers.sperren (enthält Ihr aktuelles Composer-Setup) und führen Sie dann einencomposer install
Auf dem Produktionsserver wird dadurch auch das Entwicklungsmaterial installiert.
Was ist der richtige Weg, um dies bereitzustellenohne Installieren der -dev-Abhängigkeiten?
Hinweis: Ich versuche hier ein kanonisches Q / A zu erstellen, um die seltsame Composer-Bereitstellung zu verdeutlichen. Fühlen Sie sich frei, diese Frage zu bearbeiten.