Composer ha la possibilità di caricare diverse dipendenze solo durante lo sviluppo, quindi gli strumenti non verranno installati in produzione (sul server live). Questo è (in teoria) molto utile per gli script che hanno senso solo nello sviluppo, come test, strumenti per dati falsi, debugger, ecc.
La strada da percorrere è aggiungere un require-dev
blocco aggiuntivo con gli strumenti necessari in dev:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
e quindi (teoricamente) caricare queste dipendenze tramite
composer install --dev
Problema e domanda:
Il compositore ha cambiato radicalmente il comportamento install
e, update
nel 2013, le require-dev
dipendenze sono ora installate per impostazione predefinita (!), Sentiti libero di creare un composer.json con un require-dev
blocco e di eseguire una composer install
riproduzione.
Come il modo più accettato di distribuire è spingere il compositore. lock (che contiene la tua attuale configurazione del compositore) e quindi esegui uncomposer install
sul server di produzione, questo installerà anche le cose di sviluppo.
Qual è il modo corretto di distribuire questo senza installare le dipendenze -dev?
Nota: sto cercando di creare un Q / A canonico qui per chiarire la strana distribuzione di Composer. Sentiti libero di modificare questa domanda.
composer.lock
dovrebbe mai essere aggiunto al repository Git, MAI. L'approccio corretto consiste nell'utilizzare l'aggiornamento del compositore per la gestione temporanea e quindi sincronizzare il file in produzione (se tutto funziona, ovviamente). La gestione temporanea deve essere la copia esatta di un ambiente di produzione. composer.lock
dovrebbe far parte di .gitignore
.