2014-10-31 16 views
6

Używam fundacji zurb już od jakiegoś czasu.
Używam konfiguracji altana + kompasu, jak opisano tutaj
http://foundation.zurb.com/docs/sass.htmlFundament zurb - wiele zduplikowanych wpisów CSS

Dziś podczas pracy zauważyłem, że strona została zajmuje dużo czasu, aby załadować i podczas próby kłopoty strzelać problem zauważyłem, że istnieje wiele duplikaty dyrektyw w wygenerowanym pliku css.

Jestem pewien, że to prawdopodobnie robię coś złego, ale nie wiem, od czego zacząć szukać i nie wiem nawet, jakie informacje mogą pomóc w zawężeniu tego problemu.

Fundacja 5.4.5 -> 5.4.7 faktycznie działa

Kompas 1.0.1

Każda pomoc apprecieated.

enter image description here

*************** Aktualizacja: *****************
Więc jak się okazuje i był w rzeczywistości działa 5.4.7 Zajrzałem _functions.scss za @Cartucho

i wygląda na to, patch jest tam:

// IMPORT ONCE 
// We use this to prevent styles from being loaded multiple times for compenents that rely on other components. 
$modules:() !default; 
@mixin exports($name) { 
    $module_index: index($modules, $name); 
    @if (($module_index == null) or ($module_index == false)) { 
    $modules: append($modules, $name); 
    @content; 
    } 
} 

@KatieK niektóre przykłady z podawanych css na linii 90

/* line 386, ../../../../foundation_master/bower_components/foundation/scss/foundation/components/_global.scss */ 
*, 
*:before, 
*:after { 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 

na linii 2885

/* line 386, ../../../../foundation_master/bower_components/foundation/scss/foundation/components/_global.scss */ 
*, 
*:before, 
*:after { 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 

na linii 3085

/* line 386, ../../../../foundation_master/bower_components/foundation/scss/foundation/components/_global.scss */ 
*, 
*:before, 
*:after { 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 
+1

To prawdopodobnie błąd "przedłużenia". Spróbuj włączyć numery linii w wyjściowym arkuszu CSS. Ale naprawdę nie możemy powiedzieć więcej bez samowystarczalnego przykładu. – KatieK

+0

Czy używasz wersji Compass lub libsass? Istnieje wiele dyskusji na temat tego, jak Foundation pomieszał instalacje Bower dla libsass, ponieważ nie obsługuje nowej wersji SASS. Ten sam błąd prawdopodobnie ma miejsce w przypadku instalacji programu Compass, ale nie mam z tym doświadczenia. – austinthedeveloper

+0

@KatieK przykłady wyprowadzonych css powyżej –

Odpowiedz

6

Jest to bug Fundacji 5.4.5. Zasadniczo problem zaczęło się, gdy Sass 3.4 wprowadził pewne niezgodności w tył podczas obsługi zmiennych globalnych:

http://sass-lang.com/documentation/file.SASS_CHANGELOG.html

wszystkie przypisania zmiennej nie na najwyższym poziomie dokumentu są teraz lokalny domyślnie. Jeśli istnieje zmienna globalna o tej samej nazwie, to nie zostanie nadpisane, dopóki nie zostanie użyta flaga globalna! Na przykład: $ var: value! Global przydzieli globalnie $ var.

Ale ta nowa składnia nie jest rozpoznawany przez libsass (w oparciu o Sass 3.2 specyfikacji), więc Fundacja faceci wydany 5.4.5 z częściowym poprawkę: https://github.com/zurb/foundation/commit/8b85dc37fab3da156cdfdddfc8919667b98eb155

Aby rozwiązać ten problem, należy zaktualizować do 5.4. 6 lub więcej. Błąd jest w mieszaniu exports() z _functions.scss. Spróbuj zastąpić go tym kodem (z Fundacji 5.4.6):

// _functions.scss 
// ... 
// IMPORT ONCE 
// We use this to prevent styles from being loaded multiple times for compenents that rely on other components. 
$modules:() !default; 
@mixin exports($name) { 
    $module_index: index($modules, $name); 
    @if (($module_index == null) or ($module_index == false)) { 
    $modules: append($modules, $name); 
    @content; 
    } 
} 

Mam nadzieję, że pomoże!


EDIT

Wydaje się, że Fundacja 5.4.7 wciąż ma problemy ze zgodnością z SASS 3.4 i 3.2 SASS, specjalnie dla użytkowników kompas. Istnieje wiele dyskusji, takich jak this one na Forum Fundacji.

Według official doc, Fundacja współpracuje również z SASS 3.2:

Dopóki dogonić Sass Sass 3.4 wszystkie biblioteki, Fundacja będzie na Sass 3.2. Oznacza to, że jeśli zaktualizowałeś Sass 3.4+ i Compass 1.0+, polecenia do kompilacji projektu Compass nieco się zmieniły.

Kiedyś kompilowałem SASS z kompasem, ale poddaję się z powodu tych problemów. Tak więc, moją ostatnią radą jest odinstalowanie Compass (zazwyczaj SASS 3.4) i użycie libsass (w oparciu o SASS 3.2). Używam następujący skrypt do instalacji libsass w moim Ubuntu:

#!/bin/sh 

# install_libsass.sh 
# 
# Script for installing libsass (https://github.com/sass/libsass), 
# 
# NOTES 
# http://foundation.zurb.com/forum/posts/6803-trouble-creating-f5-project-with-grunt-and-libsass 
# http://mattferderer.com/compile-sass-with-sassc-and-libsass 
# 


sudo apt-get install git 

cd /opt 
sudo rm -R -f sassc 
sudo rm -R -f libsass 
sudo git clone https://github.com/hcatlin/sassc.git 
sudo git clone https://github.com/hcatlin/libsass.git 

cd /opt/libsass 
sudo git submodule update --init --recursive 

cd /opt/sassc 
## Add the line "export SASS_LIBSASS_PATH=/opt/libsass" 
## at the begining of sassc/Makefile 
sudo sh -c "echo 'export SASS_LIBSASS_PATH=/opt/libsass' | cat - Makefile > temp && mv temp Makefile" 
sudo make 

echo "REBOOT!" 

Następnie restart i sprawdzić czy wszystko jest w porządku z tym poleceniem:

/opt/sassc/bin/sassc -h 
+1

Thx dla tego odniesienia. nie ma mowy, bym znalazł to na własną rękę. Zaktualizowałem powyższe szczegóły.wygląda tak, jakbym faktycznie był w wersji 5.4.7, a łatka jest w kodzie. Czy myślisz, że to coś innego? –

+0

@ w - Właśnie zaktualizowałem swoją odpowiedź. Mam nadzieję, że to pomoże i powodzenia! – Cartucho

+0

ahh .. nie dostrzegł aktualizacji instrukcji kompasu (które zasysają, ponieważ nie informują o tym, jak zaktualizować istniejący projekt). W końcu uruchamiam nowe instrukcje. Moje dokładne kroki opiszę w innej odpowiedzi. Dzięki za wskazanie mi właściwego kierunku! –

1

Dzięki @Cartucho byłem wskazał w dobrym kierunku przeglądając zaktualizowane dokumenty urzędowe.
http://foundation.zurb.com/docs/sass.html

Oto co zrobiłem, aby zaktualizować wykorzystanie kompasu skompilować założenia:

1) zainstalowane Bundler

gem install bundler 

2) w katalogu temp rozpoczął nowy projekt Fundacji

foundation new throwaway_project 

3) skopiowałem głupią Gemfile do katalogu głównego mojego istniejącego projektu. wygląda

source "https://rubygems.org" 

gem "sass", "~> 3.3.0" 
gem "compass", "~> 1.0" 

4) prowadził wiązkę raz

bundle 

5) run kompas zegarek ponownie stosując Bundler (jak w instrukcji)

bundle exec compass watch 

kilka ostrzeżeń Deprecation ale wygenerowane css wygląda teraz dobrze.

Powiązane problemy