Pracuję nad projektem, w którym chcemy, aby użytkownik mógł definiować własne kolory. Używamy najnowszej wersji Meteera z, między innymi, mniejszą paczką.Jakikolwiek sposób na wprowadzanie wartości do mniejszych plików w Meteorze?
Obecnie wszystkie kolory są zmiennymi znajdującymi się w jednym pliku theme.lessimport, który jest uwzględniany we wczesnej fazie przetwarzania. Wszystkie kolory w witrynie (i wiele kolejnych mniej plików) są generowane z tych kilku zmiennych.
Założeniem było wygenerowanie nowego pliku userTheme.lessimport dla każdego użytkownika, który, jeśli istnieje, może zostać zaimportowany zaraz po pliku theme.lessimport, aby zastąpić zmienne niestandardowymi wartościami. Wszystko działa pięknie i bezbłędnie, jeśli fizycznie dodasz plik do katalogu, ale nie mogę nawet wymyślić sposobu, aby zrobić to dynamicznie/programowo.
Zaczynam się zastanawiać, czy można to zrobić nawet za mniej.
- Jednym z dużych problemów jest to, że tak dużo css pochodzi od tych zmiennych - w tym CSS dołączonych do wtyczek/modułów naszej aplikacji.
- wydaje się, że nie można zaimportować zdalnego pliku do włączenia w mniejszej obróbce wstępnej ... więc plik nie może zostać wygenerowany na zdalnym serwerze (byłaby to idealna sytuacja dla naszej sytuacji, ponieważ dane użytkownika będą istnieją na serwerze API).
- Nie wydaje się, aby istniał jakiś programowy sposób generowania lub w inny sposób wprowadzania jakichkolwiek wartości w mniej - przynajmniej na Meteoru - ponieważ nie mogę znaleźć żadnego sposobu interakcji z mniejszymi za pomocą JS.
Oprócz tej niedogodności, mniej było idealne do tego co robimy, więc naprawdę chcą, aby tę pracę. Mając nadzieję, że ktoś tam ma jakąś mądrość lub kierunek, który mogą przekazać.
Mniej kompilator jest napisany w języku JavaScript i obsługuje interpretację po stronie klienta. Czy konieczne jest, aby kod został skompilowany po stronie serwera? [Zobacz to pytanie] (http://stackoverflow.com/questions/9316385/pass-a-string-of-less-to-less-js-and-receive-css) – sffc
Miałem nadzieję, że będzie sposób z mniejszym pakietem Meteora, który automatycznie pobiera mniej plików, kompiluje je i obsługuje klientów. Być może będziemy musieli przenieść to do bardziej "ręcznego" rozwiązania opartego na kliencie. – ValZho
Twój .less jest kompilowany w czasie pakietu - zanim Meteor zostanie uruchomiony i zanim jakikolwiek klient się połączy. Będziesz chciał wymyślić inną strategię na to. – emgee