2015-12-17 12 views
5

Dire che voglio richiedere un pacchetto con il compositore ma che il pacchetto ha alcune directory che non credo dovrebbero essere incluse. per esempio. forse una directory tests/ o altro. C'è un modo per omettere questa directory da ciò che compositore scarica?come richiedere un pacchetto omettendo i file selezionati con il compositore

C'è il flag --prefer-dist ma che richiede repos ha un file .gitattributes presente con export-ignore per i vari file/directory. Ma cosa succede se il pronti contro termine in questione non ha quello? Certo, potrei fare una richiesta di pull, ma cosa succede se non lo accettano? Cosa succede se il progetto viene abbandonato? Per questi motivi, ritengo che il flag --prefer-dist non sia ottimale e vorrei una risposta (se ne esiste una) diversa da "usa --prefer-dist".

+0

Possibile duplicato di [C'è un modo per utilizzare i pacchetti di download di Composer senza documenti e testare le cose?] (Http://stackoverflow.com/questions/17100116/is-there-any-way-to-use-composer- download-packages-without-docs-and-testing-thin) –

+1

Penso che il flag '--prefer-dist' richiede che il repository abbia un file' .gitattributes' presente con 'export-ignore' per i vari file/directory. Ma cosa succede se il repository in questione non ha questo? Certo, potrei fare una richiesta di pull, ma cosa succede se non lo accettano? Cosa succede se il progetto viene abbandonato? – neubert

+0

Non ho commenti sulla risposta a questa domanda, ma le domande stesse sono duplicati. Se riesci a ottenere una risposta migliore da qualcuno (non io, perché non ne ho idea), allora potrebbe essere meglio chiudere quello come duplicato di questo –

risposta

2

Symfony ha provato a fare questo, e la loro esperienza li ha fatti revert this decision. Il compositore aveva informazioni sull'uso di .gitattributes nella documentazione, ma removed it.

In pratica, la rimozione di alcune parti di un pacchetto da un percorso di distribuzione distinto può causare più problemi di quanti ne risolva. Dal mio punto di vista, l'interruttore CLI --prefer-dist e --prefer-source è un selettore di dover clonare un enorme repository che richiede anni o scaricare un ZIP con quella versione esatta, ma i risultati dovrebbero essere uguali, cioè non dovrei essere forzato a --prefer-source per TUTTI le mie dipendenze solo perché un singolo pacchetto che ha deciso di "ottimizzare per la distribuzione" ha deciso di rimuovere la documentazione e i test dal loro ZIP.

Sì, durante lo sviluppo di solito guardo il loro codice e test per aiutarmi a capire cosa sta succedendo - o cosa DOVREBBE andare avanti, e non lo è.

Conclusione: il compositore NON è uno strumento di distribuzione. Se ti interessa la dimensione della tua applicazione, è tuo compito rimuovere tutto ciò che non ti serve o volere, e probabilmente anche ottimizzare altre cose (minimizzare JS e CSS, ottimizzare le immagini, ecc.). Non dovrebbe essere compito dei compositori o dei manutentori dei pacchetti fare questa ottimizzazione per te.

Problemi correlati