Liferay mvn build-css и sass @charset вставлены в @import? : @charset можно использовать только в корне документа.

Liferay 6.2
Maven 3.3.9

Я использую liferay-maven-plugin:6.2.10.13:build-css для компиляции файлов scss в css.

мой main.css:

@import url(base.css);
@import url(application.css);
@import url(layout.css);
@import url(dockbar.css);
@import url(navigation.css);
@import url(portlet.css);
@import url(extras.css);
@import url(custom.css);
@import "wip/main";

который представляет собой обычный файл Liferay main.css. Я только что добавил импорт wip/main (это файл scss).

Мой файл wip/main.scss:

@charset "UTF-8";
/////////////////////////////
// variables
@import "app-var";
@import "app-mixins";

/////////////////////////////
// maincontent
@import "slider-banner";
@import "membership-box";
// more @imports...

И это работает! Большой :)

Теперь я хочу поставить перед всеми моими правилами wip/main.scss (импортированными из разных файлов) префикс:

.aui {

Итак, что-то вроде:

@charset "UTF-8";

.aui {
    /////////////////////////////
    // variables
    @import "app-var";
    @import "app-mixins";
    // maincontent
    @import "slider-banner";
    @import "membership-box";
}

Но тогда у меня есть исключение:

Failed to execute goal com.liferay.maven.plugins:liferay-maven-plugin:6.2.10.13:build-css (default) on project wip-theme: null: MojoExecutionException: InvocationTargetException: (SyntaxError) @charset may only be used at the root of a document. -> [Help 1]

Поэтому просто добавление .aui { - ПОСЛЕ - @charset "UTF-8"; приводит к сбою сборки.

Бьюсь об заклад, @charset копируется во все файлы @import и, таким образом, .aui { содержит @charset... но я не знаю, проблема ли в этом и как ее избежать.



Кто-нибудь знает обходной путь? Спасибо


person Gonnarule    schedule 09.05.2016    source источник
comment
Работает ли он без кодировки в основном файле и с кодировками в каждом частичном файле?   -  person kasperoo    schedule 09.05.2016
comment
Нет, с моим main.css, не имеющим кодировки и партиалом, использующим @Charset, у меня такая же ошибка (поскольку main.css инкапсулирует импорт моих партиалов в другой класс)   -  person Gonnarule    schedule 10.05.2016


Ответы (1)


В итоге я удалил @charset из моих файлов scss и напрямую установил кодировку файла через свою IDE.

Все идет нормально.

Кстати, похоже, что это проблема maven (конфигурация или около того), поскольку то же самое с grunt (сборка grunt) не вызовет никаких проблем.

В любом случае, работая под maven, если я удалю @charset. Не лучший, но пока не найду лучше...

person Gonnarule    schedule 11.05.2016