2016-09-22 9 views
1

Мне бы хотелось, чтобы файл css, созданный меньшим компилятором, содержал директиву @import в начале файла.Есть ли способ сказать less-css/gulp-less оставить правило @import as-is

I.e. учитывая это меньше файл:

@import "external.css" /* this import directive should be left as is */ 
@import "globals.less" 
a { color: @linkColor; } /* defined in globals.less */ 

полученный файл CSS должен выглядеть следующим образом:

@import "external.css" 
a { color: #00a; } 

Кажется, что ни один из различных options из менее директивы импорта не помогает производить это. Есть ли другой путь?


Обновление: Я использую gulp-less для компиляции меньше файлов. Это может быть проблемой с этим пакетом, а не с самим собой (@import (css) "external.css"; не дает желаемого результата).

+0

В чем проблема с импортом 'external.css', который дает результат без обработки LESS? –

+0

Чтение [manual: '@import" foo.css "; // заявление оставлено на месте, as-is'] (http://lesscss.org/features/#import-directives-feature#import-directives-feature-file-extensions), не должно быть '@import" внешним. css "' уже есть * left as is *? Может быть, это немного придирчиво к закрытию ';'? – Yoshi

+1

@Yoshi: Он придирчив к закрытию ';', но в этом случае он будет давать синтаксическую ошибку во время компиляции. Когда используется ключевое слово 'css', оно оставит оператор import as-is (от версии 1.4 вверх). – Harry

ответ

1

Как seven-phases-max догадался (в комментариях), этот вопрос не был вызван gulp-less, но с помощью CSS-Minifier (gulp-clean-css), который бежал после глотка сборник.

Использование правильных опций clean-css (processImport: false) решает проблему.

+0

Ах, это похоже на плагин к gulp-cssimport, который я связал в своем комментарии раньше. Хорошо, что вы нашли причину. – Harry

3

Update: Это действительно кажется глотком меньше проблем (или какой-либо другой библиотеке в цепочке), так как код в вопросе должен фактически вывести @import заявление как есть, даже без использования опции (css). The Less compiler seems to be capable of reading the file extension and if it is css then it just leaves the @import directive as-is. Таким образом, это определенно не должно быть проблемой компилятора Less.


Да, попробуйте использовать ключевое слово css как @import (css) "external.css";. Когда это ключевое слово используется, компилятор Less выводит оператор import as-is.

@import (css) "external.css"; 
@import "globals.less"; 
a { 
    color: @linkColor; 
} 

компилировать бы

@import "external.css"; 
a { 
    color: #00a; 
} 
+0

Но это приведет к получению кода в 'external.css' будет выводиться« as-is » ", но не оставляйте предложение @ @ import –

+0

Извините, я не понимаю вас @MarcosP rezGude. Пожалуйста, попробуйте на lesscss.org :) – Harry

+0

Вы правы, я предполагаю, что компилятор будет включать внутренний код на 'external.css' в конечный результат. Но все в порядке. Спасибо :) –

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

  • Нет связанных вопросов^_^