È difficile rispondere a questa domanda. Entrambe le opzioni hanno i loro pro e contro secondo me.
Personalmente non amo leggere un singolo file CSS ENORME e mantenerlo è molto difficile. D'altra parte, dividerlo provoca ulteriori richieste http che potrebbero rallentare le cose.
La mia opinione sarebbe una delle due cose.
1) Se sai che il tuo CSS non cambierà MAI una volta che lo hai creato, creerei più file CSS in fase di sviluppo (per leggibilità), e poi li combinerei manualmente prima di andare in diretta (per ridurre le richieste http)
2) Se sai che cambierai il tuo CSS di tanto in tanto e devi tenerlo leggibile, creerei file separati e userei il codice (a condizione che tu stia usando una sorta di linguaggio di programmazione) per combinarli a tempo di costruzione del runtime (la minificazione / combinazione del runtime è un maiale delle risorse).
Con entrambe le opzioni, consiglio vivamente la memorizzazione nella cache sul lato client al fine di ridurre ulteriormente le richieste http.
EDIT:
ho trovato questo blog che mostra come combinare CSS in fase di esecuzione utilizzando nient'altro che codice. Vale la pena dare un'occhiata (anche se non l'ho ancora testato da solo).
EDIT 2:
Ho deciso di utilizzare file separati in fase di progettazione e un processo di creazione per minimizzare e combinare. In questo modo posso avere CSS separati (gestibili) mentre sviluppo e un file minimizzato monolitico appropriato in fase di esecuzione. E ho ancora i miei file statici e meno sovraccarico del sistema perché non eseguo compressione / minimizzazione in fase di esecuzione.
nota: per voi acquirenti là fuori, consiglio vivamente di utilizzare il bundler come parte del processo di creazione. Sia che tu stia costruendo all'interno del tuo IDE o da uno script di compilazione, il bundler può essere eseguito su Windows tramite incluso exe
o può essere eseguito su qualsiasi macchina che sta già eseguendo node.js.