2014-05-25 35 views
18

Quando si install o update un progetto con il compositore, si può dire di saltare le dipendenze legate sviluppo (test, costruire strumenti, ecc) con la bandierina --no-devPHP Compositore: No Modalità Dev che Sticks

composer.phar update --no-dev 

Senza questo flag, il compositore scaricherà sempre le dipendenze extra.

C'è un modo (programmaticamente o meno) per dire al compositore di saltare sempre le dipendenze dello sviluppo? Cioè, c'è qualcosa di codice reale che corrisponde al codice pseudo

//File: composer.json 
//... 
"no-dev":"true" 
//... 

risposta

18

In breve: no - no, ancora.

La modalità di installazione predefinita di Compositore consiste nell'installare le dipendenze di sviluppo.

Per quanto ne so, c'è solo l'opzione CLI --no-dev e nessuna opzione di configurazione.

E 'possibile definire una sezione config nella composer.json di un progetto, vedere https://getcomposer.org/doc/04-schema.md#config

Ma una rapida occhiata al codice fonte ha rivelato, che non esiste alcuna direttiva di configurazione per questo. https://github.com/composer/composer/blob/master/src/Composer/Config.php#L22

{ 
    "config": { 
     "no-dev": "true" 
    } 
} 

+1 per questa idea. Potrebbe essere un'utile aggiunta alla classe Config.

+3

concordato. Perché non è stato aggiunto? Ogni volta che qualcuno aggiorna il nostro ambiente di produzione, tende a dimenticare il --no-dev, installando un mucchio di cose non necessarie – Blizz

+3

non so. Ho fatto riferimento a questa domanda su [Composer Issues] (https://github.com/composer/composer/issues/3008). Adesso ha quasi un anno, ma nessuno lo ha ancora affrontato. Forse dovrei contribuire con una piccola patch :) –

+0

La mia ipotesi è che poiché 'no-dev' è un'opzione di installazione, non un'opzione di progetto (cioè se lo hai archiviato nel 'compositore.json', non saresti in grado di installare librerie di sviluppo per ... beh ... sviluppo.) Forse un'opzione migliore sarebbe la possibilità di impostare "ambienti compositore" con diverse opzioni di installazione (quindi qualcosa come "" env ": {" produzione ": {" no-dev ": true," optimize ": true," allow-update ": false}," testing ": {" no-dev ": false," allow-update ": false}}') – samlev