2013-05-09 2 views

ответ

5

@ diffa прав в том, что нет никакой поддержки SASS, но LESS принимается. Если вы не хотите идти по маршруту LESS, интеграция с SASS не так уж трудна. В настоящее время мы используем SASS/Compass [с интеграцией шаблона sass http://www.archetypecss.com/] с нашим стеком разработки.

Чтобы скомпоновать вещи, мы используем очень простой MVN-проект для создания нашего приложения. Перед SCSS наш проект выглядел как-то

Maven/ 
    bundle/ 
    /path/to/our/java 
    content/ 
    /path/to/our/jcr_root (apps/etc) 

Мы добавили папку проекта

Maven/ дерзость/ config.rb

Тогда в нашем Config.rb мы устанавливаем каталог SCSS и целевой CSS каталоги в нашу папку etc/design, таким образом, мы могли бы сохранить наш SCSS, где мы хотим, чтобы наш CSS был скомпилирован. Затем мы подключили команду compass compile в наш скрипт сборки. Какой упрощена это как коснуться:

compass compile 
mvn clean 
mvn build 

Если вы не используете Maven, вы могли бы сделать то же самое, пока в вашем config.rb установить правильные пути для Src SCSS/Sass файлы, а затем вы устанавливаете целевой каталог компиляции в вашу категорию дизайна в /etc

Мы сделали, чтобы исключить файлы scss из нашего pom.xml, чтобы maven только собирал скомпилированный css, а затем удалял наши скомпилированные файлы CSS из нашей системы управления версиями , Это позволяет нашей команде обновлять scss, не беспокоясь о том, что файлы scss, плавающие вокруг нашего JCR, ничего не делают.

Пример рабочего процесса:

  1. Dev делает дерзость изменения
  2. Dev запускает скрипт сборки
  3. Dev проверяет локальный

, если мы не были на Maven и мы использовали что-то вроде VLT это будет что-то вроде

  1. Dev делает изменения дерзость
  2. Dev работает компас компиляции (или в данный момент компас часы может быть более подходящим)
  3. Dev работает VLT/pckmgr/что здесь
  4. Dev проверки на местном

Файл примера :

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 

Если вы заметили, я поставил Sass и CSS каталоги быть jcr_root. Это позволяет нам помещать файлы sass в любом месте в jcr_root (независимо от того, все ли это в etc/designs или нам нужен специальный scss в компоненте в приложениях, файлы будут компилироваться).

.........

Это немного крючками вверх, но это определенно стоит.

+0

https://github.com/Jasig/sass-maven-plugin - отличная альтернатива, если вы не нужен компас. –

+0

спасибо Tuan за редактирование hte. Мэтт, оцените ссылку, мы немного зависим от компаса для нашей реализации, но это выглядит довольно круто, если мы можем выйти из этой зависимости. – Brodie

4

Нет встроенной поддержки SASS, но есть support для LESS. Существует maven plugin для SASS, хотя я этого не использовал. Было suggested, что кто-то хотел, чтобы это могло поднять вопрос о детском саду для улучшения.

+0

Я бы не использовал встроенный LESS-подход (и adobe сказал мне это), поскольку он вызывает нежелательную загрузку сервера. Это означает, что ваш сервер будет отображать CSS, когда это необходимо, болезненно для первых нагрузок. По-видимому, поэтому первый запуск AEM занимает некоторое время, его компилятор LESS. Кроме. Это инструменты, которые должны запускаться разработчиками dev/web, а не частью приложения. Я бы установил пользовательский рабочий процесс в вашем CI для компиляции CSS вашего клиента lib и не выполнял эти задачи на сервере. – TyMayn

+1

Согласен, встроенный LESS также довольно старый. Я всегда использовал внешнюю задачу gulp/grunt для создания интерфейсных активов и упаковки их для развертывания в AEM – diffa

0

Основываясь на комментарии пользователя @diffa, я хотел бы предложить grunt-clientlibify в качестве решения для интеграции проекта front-end, содержащего файлы SASS с AEM. После обработки файлов SASS и создания файлов CSS результирующие файлы могут быть отправлены в этот плагин для создания пакета CRX, который будет необязательно развернут на экземпляр AEM. Смотрите ниже пример кода:

grunt.initConfig({ 
    clientlibify: { 
    options: { 
     // path to your processed SASS files 
     cssDir: 'assets/styles/css' 
    } 
    } 
}); 
2

Я понимаю, что эта нить довольно старая, но она занимает первое место для «AEM дерзости», так в интересах людей, которые направленная здесь ...

Я создал Sass компилятор для AEM 6.2. Это еще первые дни, но он поддерживает файлы «.scss», которые будут использоваться в клиентских библиотеках так же, как вы использовали бы «бездействующие» файлы.

https://github.com/mickleroy/aem-sass-compiler

Смежные вопросы