Quindi ho avuto questa discussione con alcuni colleghi di lavoro e vorrei che altre persone ci riflettessero su questo. Sono curioso di vedere cosa stanno facendo gli altri sviluppatori.Dovresti controllare le tue risorse compilate su Git?
Quello che mi piace fare è ignorare la mia intera cartella build/assets dal repository. Questa cartella contiene il mio CSS compilato, Javascript e immagini compresse. Penso che solo i file sorgente dovrebbero essere archiviati. Trovo fastidioso che ogni volta che apporto una modifica a un foglio di stile o un file JS, devo controllare il file sorgente E la nuova versione compilata. Ciò introduce anche conflitti di fusione e altri problemi quando più persone lavorano al progetto. Mi piace mantenere il repository piacevole e leggero e poi far sviluppare lo sviluppatore localmente al progetto. O quando si distribuisce, fare in modo che il server sviluppi il progetto.
Questo è un po 'un problema, perché i miei colleghi usano Git come processo di distribuzione. Quindi, quando si desidera distribuire, si controlla il codice in git, si spinge al repository remoto, e quindi si SSH nel server e si fa un git fetch & & git pull. Ciò significa che TUTTI i file del sito Web devono vivere nel repository. Quindi ora devo controllare nella mia cartella delle risorse.
Come gestite questo? Sto usando bedrock-ansible
per un sito Wordpress, e c'è un'opzione per eseguire alcuni comandi subito prima della distribuzione, quindi l'ho configurato per eseguire npm install && gulp build
e creare il progetto, ma il problema è che era troppo lento. Il modo in cui bedrock-ansible funziona è che crea una nuova directory di rilascio per ogni distribuzione, e simula semplicemente l'ultimo nella directory current
. Quindi, ogni volta che ho distribuito, correva npm install
quando in realtà, ho bisogno solo di quelle dipendenze in una directory condivisa. Potrebbe esserci un modo per farlo con npm install --prefix install/dir
ma non l'ho ancora testato. Penso che potrebbe introdurre più problemi.
Per ora, ho dovuto controllare tutti i miei asset compilati per git, per farlo funzionare. Ma sulla mia attività gulp watch
, non ho nessun minification, ma quando voglio distribuire, voglio eseguire prima gulp build
che ridurrà e aggirerà tutto - quindi tecnicamente dovrei sempre fare un commit quando voglio distribuire il sito. È un disastro. Cosa ne pensi è un buon modo per gestire questo?