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.