Вопрос
Есть ли способ (программно) выдать ошибку в компиляторе LESS?
Почему?
Сегодня я возился с охранниками примесей, потому что я хотел сгенерировать свое поле CSS на основе размера элемента и количества элементов. Я подумал, что было бы круто сразу выдавать ошибку при компиляции, когда элементы не помещаются в обёртку.
Информация: я использую компилятор lessc
для компиляции кода LESS в CSS. Я не использую какую-либо библиотеку Javascript для ее компиляции во время выполнения.
МЕНЬШЕ источник
// Variables
@wrapper-small: 830px;
@wrapper-big: 1200px;
.col-fixed(@size, @count, @wrapper) when ((@size*@count) <= @wrapper)
{
width: unit(@size, px);
margin-right: unit( (@wrapper - @count * @size) / (@count - 1), px);
}
.test_col_fixed {
// will fail the mixin guard and output no generated CSS
.col-fixed(340, 3, @wrapper-small);
// would work if not in comment
// .col-fixed(340, 3, @wrapper-big);
}
Сгенерированный CSS (небольшая оболочка)
Нет вывода, потому что код не будет сгенерирован из-за несоответствующей защиты примеси when ((@size*@count) <= @wrapper) // 3*340 <= 830 is false
.
Сгенерированный CSS (с рабочим решением, большая оболочка)
.test_col_fixed {
width: 340px;
margin-right: 90px;
}
output: @bwahaha
). Это, на мой взгляд, единственный способ заставить компилятор Less выйти из строя, когда никакая защита не соответствует. - person Harry   schedule 16.06.2015