• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SASS @use Error: Undefined variable

Object Storage Arubacloud
+1 głos
683 wizyt
pytanie zadane 11 lipca 2021 w HTML i CSS przez RavenTheReaper Początkujący (280 p.)
edycja 11 lipca 2021 przez RavenTheReaper

Witam, zacząłem się uczyć SCSS i dowiedziałem się że zamiast używać @import powinno się używać @use. Mam problem, na razie robię mały projekt do nauki SCSS, stworzyłem plik _index.scss dałem tam @forward'y do pozostałych plików scss ale jak próbuje zmusić sass do obserwowania folderu ze zmiennymi dostaje błąd że niby moje zmienne są niezadeklarowane chociaż wszystko powinno się zgadzać, nie wiem dlaczego gdy używałem @import wszystkie zmienne się widziały bez problemu a nagle przy @use przestały chociaż dodałem folder z _index.scss do main.scss. nigdzie nie mogłem znaleźć rozwiązania dlatego napisałem tutaj.

swoją drogą nie wiem po co zmieniać @import skoro wszystko działało... widać lubią utrudniać życie. screen z VSC

@use "../main-scss" as *;


2 odpowiedzi

0 głosów
odpowiedź 11 lipca 2021 przez pablop76 VIP (123,120 p.)

Myślę, że nie będę kopiował tekstu, który bardzo jasno tłumaczy różnicę więc wstawiam link

komentarz 12 lipca 2021 przez RavenTheReaper Początkujący (280 p.)
edycja 12 lipca 2021 przez RavenTheReaper

to mi nic nie daje, widziałem ten artykuł nic nie tłumaczy dlaczego zmienne nie są widoczne w innych plikach. po to dałem AS *; żeby nie trzeba było pisać
 

button.$padding; tylko samo $padding;

z resztą po zadeklarowaniu tego jako np. "as m" i tak nie działa ten sam error

komentarz 12 lipca 2021 przez pablop76 VIP (123,120 p.)
edycja 13 lipca 2021 przez pablop76

swoją drogą nie wiem po co zmieniać @import skoro wszystko działało...

Chyba wiele tłumaczy, przynajmniej jeśli chodzi o powody zamiany.

 

dlaczego zmienne nie są widoczne w innych plikach. po to dałem AS *; żeby nie trzeba było pisać

1

button.$padding; tylko samo $padding;

to nie służy do tego żeby zmienić zasięg. as to jest alias dla zbyt długich nazw i użycie * nie jest zalecane bo to ponownie rozmywa przestrzeń nazw. 

komentarz 13 lipca 2021 przez RavenTheReaper Początkujący (280 p.)
to w jaki sposób mam zadeklarować zmienne żeby były widoczne we wszystkich plikach?dodam że button.$padding; też nie działa po za głównym scssem jak chce go użyć np do zrobienia przycisku gdzie indziej to tam taka zmienna nie istnieje.
komentarz 13 lipca 2021 przez pablop76 VIP (123,120 p.)
edycja 13 lipca 2021 przez pablop76
Tworzysz dodatkowy plik  scss dla plików pomocniczych (zmiennych, domieszek, czcionek, rozszerzeń) i w tym pliku dodajesz te pliki pomocnicze za pomocą instrukcji @forward, która łączy je i udostępnia ich zawartość tam, gdzie jest wymagana.

Następnie w pliku głównym scss dodajesz ten plik pomocniczy za pomocą instrukcji @use

W plikach komponentów dodajesz za pomocą @use plik dodatkowy i tu możesz dodać mu alias (as), jeżeli jego nazwa jest niewygodna w użyciu, bo jest np. długa i zmienne dodajesz za pomocą aliasu lub nazwy pliku jeżeli nie ma aliasu. (lub bez aliasu i nazwy jeżeli użyjesz jako alias * - niezalecane)
komentarz 18 lipca 2021 przez RavenTheReaper Początkujący (280 p.)
Dziękuje bardzo, w końcu dobrze ktoś wytłumaczył :D
0 głosów
odpowiedź 11 lipca 2021 przez niezalogowany
komentarz 12 lipca 2021 przez RavenTheReaper Początkujący (280 p.)

niestety jak wdać nie można używać ani mixinów ani zmiennych globalnie https://stackoverflow.com/questions/17598996/sass-use-variables-across-multiple-files.

odtworzyłem ten sam błąd w małym projekcie żeby ładnie było widać co jest nie tak.

Link do plików (DROPBOX)

 

Podobne pytania

0 głosów
2 odpowiedzi 239 wizyt
0 głosów
1 odpowiedź 776 wizyt
pytanie zadane 17 kwietnia 2019 w PHP przez Whereismycode Obywatel (1,710 p.)
–1 głos
2 odpowiedzi 1,217 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...