2015-07-04 14 views
6

cachen/zusammenführen Ich habe eine Reihe von verschiedenen CSS-Dateien in css/ Ordner mit Hilfe von libsass generiert. Auch habe ich bereits in css/ Ordner platziert, um die Normalisierung von CSS in allen Browsern zu ermöglichen. Ich verwende npm als Build-Tool, und mein package.json besteht so etwas wie dieses:css-Dateien in der Reihenfolge

{ 
..... 
"scripts": { 
    "test": "npm run lint", 
    "lint": "csslint css/*.css", 
    "build": "node-sass sass/ -o css/", 
    "postbuild": "cat css/*.css | cleancss -o css/main.min.css" 
    }, 
..... 
} 


Am Build-Schritt Ich Erzeugung css Dateien und in Post-Build-Schritt ich verketten alle CSS-Dateien in eine verfälschte CSS-Datei.

Aber während Post-Build-Schritt sollte der Inhalt der Datei vor anderen CSS-Datei Inhalt kommen, aber das Verhalten ist inkonsistent. Ich muss sicherstellen, dass normalize Zeug vor allen anderen CSS-Dateien kommt, jeder Kopf wäre hilfreich.


TLDR-Verkettung von Bündel von CSS-Dateien Ergebnisse in normalize.css wird in mittleren oder letzten angefügt. Ich brauche es am Anfang der verketteten CSS-Datei.

Danke.

Antwort

6

Verwenden Sie einfach den -I option von lsnormalize.css von auszuschließen aufgeführt werden:

cd css/ && cat normalize.css `ls -I normalize.css -I main.min.css` | cleancss -o main.min.css 
+2

tut 'cat' zeigt Dateien in alphabetischer Reihenfolge ihrer Dateinamen? –

+2

@AbhinavGauniyal Nein, 'cat' verwendet die Reihenfolge seiner Argumente, also hier zuerst' normalize.css' und dann die Reihenfolge von 'ls', die standardmäßig in alphabetischer Reihenfolge ist. (Siehe http://stackoverflow.com/questions/878249/unixs-ls-sort-by-name). Wenn Sie jedoch bemerken, dass dies nicht der Fall ist, verwenden Sie einfach 'ls -I normalize.css * .css | sort' – Jerska

+2

okay ... 'ls -I normalize.css * .css' selbst im Terminal gibt alle CSS-Dateien einschließlich' normalize.css', also den ganzen Zweck zu besiegen. Kannst du bitte nachsehen? –

Verwandte Themen