2015-07-04 13 views
6

Mam kilka różnych plików CSS generowanych w folderze css/ przy pomocy libsass. Również mam normalize.css już umieszczony w folderze css/, aby umożliwić normalizację css we wszystkich przeglądarkach. Używam NPM jako narzędzie budowania i moje package.json składa się mniej więcej tak:Łączenie plików CSS w kolejności

{ 
..... 
"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" 
    }, 
..... 
} 


na etapie kompilacji Jestem generowania css plików iw post-build kroku jestem łącząc wszystkie pliki css do jeden skasowany plik css.

Jednak podczas kroku po kompilacji zawartość pliku normalize.css powinna znajdować się przed inną zawartością pliku css, jednak zachowanie jest niespójne. Muszę się upewnić, że normalizacja rzeczy wyprzedzi wszystkie inne pliki CSS, pomocne mogą być wszystkie głowy.


Tldr - Powiązanie pęczek pliki CSS powoduje normalize.css są dołączone w środku lub na końcu. Potrzebuję go na początku połączonego pliku css .

Dzięki.

Odpowiedz

6

Wystarczy użyć -I option z ls wykluczyć normalize.css przed wymienione:

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

robi 'cat' pokazuje pliki w kolejności alfabetycznej ich nazw? –

+2

@AhvinvGauniyal Nie, 'cat' używa kolejności swoich argumentów, więc najpierw" normalize.css ", a następnie kolejność z' ls', która domyślnie jest w porządku alfabetycznym. (Zobacz http://stackoverflow.com/questions/878249/unixs-ls-sort-byname). Jeśli jednak zauważysz, że tak nie jest, po prostu użyj 'ls -I normalize.css * .css | sort " – Jerska

+2

okay ...' ls -I normalize.css * .css' nawet w terminalu daje wszystkie pliki css, w tym 'normalize.css', przez co pokonuje cały cel. Czy możesz to sprawdzić? –

Powiązane problemy