Chciałbym zapytać, czy Adobe CQ obsługuje SASS/SCSS? Czy ktoś ma z tym doświadczenie?Adobe CQ i SASS/SCSS
Odpowiedz
@diffa ma rację, ponieważ nie ma natywnego wsparcia dla SASS, jednak LESS jest akceptowane. Jeśli nie chcesz iść na trasę LESS, integracja SASS nie jest trudna. Obecnie korzystamy z integracji SASS/Compass [z szablonem sass http://www.archetypecss.com/] z naszym pakietem rozwojowym.
Aby poprawić wygląd, używamy bardzo prostego projektu MVN do zbudowania naszej aplikacji. Przed SCSS nasz projekt wyglądał mniej więcej tak
Maven/
bundle/
/path/to/our/java
content/
/path/to/our/jcr_root (apps/etc)
Dodaliśmy folder do tego projektu
Maven/ Sass/ config.rb
Wtedy w naszym Config.rb
możemy ustawić katalog docelowy SCSS i CSS katalogi do naszego folderu etc/design
, więc w ten sposób możemy utrzymać nasz SCSS tam, gdzie chcemy, aby nasz CSS się kompilował. Następnie podpięliśmy komendę kompasu kompasu do naszego skryptu kompilacji. Który jest cos takiego jak uproszczone:
compass compile
mvn clean
mvn build
Jeśli nie używasz Maven, można zrobić to samo, o ile w swojej config.rb
ustawić prawidłowe ścieżki dla src SCSS/plików Sass a następnie ustawić docelowy katalog kompilacji do kategorii projektu w /etc
Innymi czynnościami, które zrobiliśmy, jest wykluczyć pliki scss z naszego pliku pom.xml, aby użytkownik mógł po prostu skompilować skompilowany plik css, a następnie usunąć nasze skompilowane pliki CSS z naszego systemu wersjonowania . Pozwala to naszemu zespołowi na wersję scss, nie martwiąc się o pliki scss pływające wokół naszego JCR, nie robiąc nic.
Przykład Workflow:
- Dev sprawia Sass zmienia
- Dev biegnie zbudować skrypt
- Dev sprawdza lokalny
jeśli nie byliśmy na Maven i używaliśmy coś podobnego VLT to byłby podobny do:
- Dev sprawia Sass zmienia
- Dev działa kompas kompilacji (lub w tym momencie kompas zegarek może być bardziej odpowiednie)
- Dev biegnie VLT/pckmgr/cokolwiek tutaj
- Dev kontrole lokalnej
przykładowy plik :
maven/
bundle/
/path/to/javas
content/
/src/main/content/jcr_root/
etc/designs/myproj
/css
main_styles.sass <= src
main_styles.css <= compiles to
maven/
config.rb
sass_dir = ../content/src/main/content/jcr_root
css_dir = ../content/src/main/content/jcr_root
Jeśli zauważysz, ustawić Sass i cSS katalogów być jcr_root
. To pozwala nam umieszczać pliki sass w dowolnym miejscu w jcr_root
(czy to wszystko w etc/designs
lub potrzebowaliśmy specjalnych scss w komponencie w aplikacjach, pliki się skompilują).
.........
To trochę zahaczyć, ale na pewno warto.
Brak wbudowanej obsługi SASS, ale istnieje support dla LESS. Dla SASS istnieje maven plugin, chociaż tego nie używałem. Zostało suggested, że ktokolwiek tego chciał, może zgłosić prośbę o przedłużenie opieki.
Unikałbym korzystania z wbudowanego podejścia LESS (i Adobe mi to powiedział), ponieważ powoduje to niepożądane obciążenie serwera. To oznacza, że twój serwer wyrenderuje CSS, gdy zajdzie taka potrzeba, co jest bolesne przy pierwszych ładowaniach. Wygląda na to, że pierwszy rozruch AEM trwa chwilę, a jest to kompilator LESS. Oprócz. Są to narzędzia przeznaczone do uruchamiania przez programistów/web folk, a nie jako część aplikacji. Chciałbym skonfigurować niestandardowy przepływ pracy w twoim CI, aby skompilować twój CSS biblioteki klienta, a serwer nie powinien wykonywać tych zadań. – TyMayn
Uzgodnione, wbudowany w LESS jest również dość stary. Zawsze korzystałem z zewnętrznego zadania "gulp/grunt" do budowania zasobów front-end i pakowania ich do wdrożenia w AEM – diffa
W oparciu o komentarz użytkownika @diffa, chciałbym zaproponować grunt-clientlibify jako rozwiązanie do zintegrowania projektu front-end zawierającego pliki SASS z AEM. Po przetworzeniu plików SASS i wygenerowaniu plików CSS, pliki wynikowe można przekazać do tej wtyczki, aby wygenerować pakiet CRX, który zostanie opcjonalnie wdrożony w instancji AEM. Zobacz poniżej próbki kodu:
grunt.initConfig({
clientlibify: {
options: {
// path to your processed SASS files
cssDir: 'assets/styles/css'
}
}
});
Zdaję sobie sprawę, ten wątek jest dość stary, ale to jest pierwszy ranking „AEM Sass”, więc w interesie osób skierowanych jest tutaj ...
stworzyłem Sass kompilator dla AEM 6.2. To wciąż wczesne dni, ale zapewnia obsługę plików ".scss", które będą używane w bibliotekach klienckich, podobnie jak w przypadku plików ".less".
October 2017
Ten SASS Compiler Plugin
dla AEM
pracował bardzo dobrze i to było bardzo łatwe w konfiguracji.
https://github.com/mickleroy/aem-sass-compiler
Powodzenia!
https://github.com/Jasig/sass-maven-plugin to świetna alternatywa, jeśli nie potrzebujesz kompasu. –
dzięki Tuan za edycję hte. Matt, doceń ten link, mamy trochę zależności od kompasu do naszej implementacji, ale wygląda to całkiem nieźle, jeśli możemy oderwać się od tej zależności. – Brodie