Dotless не компилируется; в Bootstrap 3 меньше исходников

Я использую dotless 1.3.1.0 для компиляции less-файлов. Это отлично работало с bootstrap 2.x, но после перехода на bootstrap 3.0.0 (загрузил исходный код отсюда: http://getbootstrap.com/getting-started/), я внезапно получаю эту ошибку:

Ожидается ')', но найдено ' ' в строке 47 в файле 'mixins.less': [46]: // Сокращения размеров [47]: .size(@width; @height) { --------- ---^ [48]: ширина: @width;

Кажется, что наличие ; поскольку разделитель между параметрами недопустим меньше. Первоисточник в mixins.less выглядит так:

...
// Sizing shortcuts
.size(@width; @height) {
  width: @width;
  height: @height;
}
...

Должен ли я использовать обновленный компилятор less? Или бутстрап выпустил меньше ошибок с исходным кодом?

ОБНОВЛЕНИЕ 1: я вижу, что существует запрос на включение без точки, устраняющий проблему с ;

https://github.com/dotless/dotless/pulls "Исправления для ; не поддерживаются в списках параметров миксина #319 # 320 дюймов

Я буду использовать файлы css, пока это не будет исправлено в dotless.


person Stephan Møller    schedule 30.08.2013    source источник


Ответы (4)


Один из моих коллег, который использует dotless, объединил несколько исправлений для проблем Bootstrap 3. Очевидно Bootstrap3 теперь будет компилироваться с последним кодом :)

https://github.com/dotless/dotless/commits/master

Я ожидаю, что обновленный пакет NuGet скоро будет доступен (на основе этого твита)

person Danny Tuppeny    schedule 27.11.2013
comment
выглядит хорошо, но, похоже, он не работает с исполняемым файлом dotless.Compiler. Он все еще задыхается при просмотре изменений в файлах LESS вживую. :( - person one.beat.consumer; 12.09.2014
comment
спишите это на глупость... ссылка на загрузку DLL на странице нажимает 1.3.1, а не 1.4.1. Чтобы получить это, вам нужно получить последний зарегистрированный почтовый индекс, а затем выполнить сборку в Visual Studio. Виола. Что-то еще полезное, это наш следующий шаг: tedgustaf.com/blog /2010/11/setup-dotless-in-aspnet-project — иллюстрирует, как включить сборщик в процесс сборки в вашем проекте. - person one.beat.consumer; 13.09.2014

Если вы посмотрите на начальную страницу bootstrap, вы обнаружите, что там указано:

компиляция МЕНЬШЕ

Если вы загружаете исходные файлы, вам необходимо скомпилировать LESS-файлы Bootstrap в пригодный для использования CSS. Для этого Bootstrap официально поддерживает только Recess, CSS-подсказку Twitter, построенную на основе less.js.

Хотя я и не использовал без точек, я пошел по тому же пути, что и вы, используя lessc, а затем обнаружил, что использование recess решило мою проблему. Возможно, использование перерыва было бы вариантом и для вас?

Например, у меня есть файл tmpfl.less со следующим содержимым:

@import "mixins.less";
@import "variables.less";


.wrapper {
  .make-row();
}
.content-main {
  .make-lg-column(8);
}
.content-secondary {
  .make-lg-column(3);
  .make-lg-column-offset(1);
}

Если я запускаю на нем lessc, я получаю следующий результат:

lessc tmpfl.less 
NameError: .size is undefined in mixins.less:47:0
46 // Sizing shortcuts
47 .size(@width; @height) {
48   width: @width;

Теперь я успешно использую перерыв следующим образом:

recess --compile tmpfl.less > tmpfl.css

Обновление:

Чтобы использовать Recess в среде .Net, в частности, в Visual Studio, можно следовать эти инструкции для получения подробной информации об установке. В этих инструкциях представлен обзор, но, возможно, не учтены некоторые подробности установки Node.js. У Microsoft есть краткие сведения об этом, и они ссылаются на < href="https://github.com/dtretyakov/node-tools#installation" rel="nofollow noreferrer">проект GitHub, который может быть полезен в зависимости от вашей версии Visual Studio.

Если вы не пойдете по маршруту Node.js-in-Visual Studio, то на самом деле главная цель — где-то установить Node.js, а затем, в конечном счете, npm, менеджер пакетов для Node.js, чтобы вы могли установить Recess. Этого можно добиться в Windows, перейдя на загрузку Node.js и установив версию для Windows. Установка npm выделена в этом обсуждении stackoverflow. После установки вам просто нужно запустить npm для установки Recess следующим образом:

npm install recess -g

Это также обсуждается в первой ссылке этого обновления.

person Software Prophets    schedule 12.09.2013
comment
Спасибо, что нашли время ответить. Я попробую и поищу .net recess framework, работающий так же гладко, как less.net. Вы случайно не знаете таких, можете порекомендовать? :) - person Stephan Møller; 12.09.2013
comment
Я использую Node.js в Linux, но я обновил свой ответ подробностями о том, как запустить его в среде .Net. Если это поможет вам, обязательно отметьте это как ответ. Я пытаюсь повысить свою репутацию. в стекопереполнении. - person Software Prophets; 12.09.2013
comment
Кажется, они удалили этот текст со страницы Bootstrap, теперь, означает ли это, что мы можем скомпилировать его без Recess или нет, я не знаю! - person Peter; 04.12.2014
comment
Он отлично компилируется с точкой без точки. - person Peter; 04.12.2014

Потратив часы на то, чтобы заставить это работать, я обнаружил, что без точек в настоящее время совершенно бесполезно.

но здесь вы можете использовать Less и Bootstrap 3 Less в своем проекте mvc ASP.Net.

http://www.tomdupont.net/2013/10/bootstrap-3-less-bundling-and-aspnet-mvc.html?showComment=1386250367416#c1439130135847828203

Этот парень только что выиграл интернет в моей книге, и если вы можете отследить его учетную запись на бирже стека, дайте мне знать.

person Christopher Matthew Bodley    schedule 05.12.2013

Я собрал httphandler, который будет компилировать меньше, используя lessjs.

Это скорее доказательство концепции, чем производственный код качества, однако для некоторых людей он может быть полезен в качестве отправной точки.

Вы можете найти источник здесь:

https://bitbucket.org/martinbooth/clearscriptless

Если кто-то заинтересован в попытке сделать это с помощью юрского периода, вы можете найти мою попытку здесь:

https://bitbucket.org/martinbooth/jurassicless

Я не рекомендую Jurassic для этого, потому что

  • потребовалось несколько исправлений ошибок в библиотеке, которые в настоящее время не интегрированы в основной проект Мои изменения теперь находятся в основной ветке Jurassic, так что это больше не проблема (хотя последний выпуск в настоящее время не включить их)
  • это очень медленно, поэтому я попробовал clearscript
person Martin Booth    schedule 25.09.2013