BundleTransformer.Less не может анализировать переменные в операторах @import

РЕДАКТИРОВАТЬ: Итак, согласно это, это невозможно, что является настоящим позором. Мне нужно будет найти библиотеку, которая связывает и сжимает с поддержкой переменных при импорте.

У меня возникают проблемы с попыткой BundleTransformer.Less проанализировать следующее LESS:

// There is a path to Startup framework
@startup-basePath: "../../../";

@import '@{startup-basePath}flat-ui/less/config.less';
@import '@{startup-basePath}flat-ui/less/mixins.less';

И это вызывает следующую ошибку:

You are importing a file ending in .less that cannot be found.":"/lib/startup/samples/template/less/@{startup-basePath}flat-ui/less/config.less

Файлы действительно существуют, но, как вы можете видеть, они не анализируют переменную в строке местоположения. Web Essentials в VS2013 не имеет проблем с компиляцией файлов LESS и выводом CSS, как ожидалось. Я подозреваю, что проблема связана с BundleTransformer или способом его настройки. Я использую следующую версию:

Id                             Version              Description/Release Notes                                                                                                                                      
--                             -------              -------------------------                                                                                                                                      
BundleTransformer.Core         1.8.0                Bundle Transformer - a modular extension for System.Web.Optimization (aka Microsoft ASP.NET Web Optimization Framework). Classes `CssTransformer` and `JsTra...
BundleTransformer.Less         1.7.16               BundleTransformer.Less contains translator-adapter LessTranslator. This adapter makes translation of LESS-code to CSS-code. Also contains HTTP-handler LessA...
BundleTransformer.Yui          1.8.0                BundleTransformer.Yui contains 2 minifier-adapters: `YuiCssMinifier` (for minification of CSS-code) and `YuiJsMinifier` (for minification of JS-code). These...

Я должен использовать эти версии, поскольку я использую Umbraco 7, и это не позволяет мне обновлять Newtonsoft.Json, не нарушая Umbraco.

Мой файл конфигурации пакета выглядит следующим образом:

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.UseCdn = true;

    var nullBuilder = new NullBuilder();
    var nullOrderer = new NullOrderer();

    // CSS + LESS
    var libCSS = new CustomStyleBundle("~/libCSS");
    libCSS.Include(
        "~/Content/font-awesome.css",

        // LESS
        "~/lib/startup/samples/template/less/style.less");

    libCSS.Orderer = nullOrderer;

    bundles.Add(libCSS);
}

Я предположил, что проблема связана с неправильной регистрацией трансформатора Less, но я в точности выполнил инструкции по установке, см. Документацию для версии LESS. Может ли кто-нибудь увидеть что-то, чего мне не хватает, что могло бы помочь решить эту проблему, или кто-нибудь может порекомендовать что-то, что я мог бы попробовать?

Любая помощь приветствуется.


person user1908480    schedule 27.02.2014    source источник


Ответы (3)


Я тоже пробовал эту библиотеку, но безуспешно: /

Лучшим решением для компиляции LESS являются пакеты node.js LESS (https://www.npmjs.org/package/less) или Recess (http://twitter.github.io/recess/).

Поскольку ваши файлы LESS не будут изменены после развертывания веб-проекта, вам не нужно создавать CSS при каждой инициализации приложения.

Вы также можете сгенерировать CSS перед сборкой приложения или после сохранения файла LESS.

Если вам интересно, я могу помочь вам с дополнительной информацией.

person Jan Remunda    schedule 27.02.2014

Мне больше повезло с версиями 1.9.40 и 1.9.34 этих пакетов BundleTransformer. У меня были проблемы с тем, что версии 1.8 временами выходили из строя. Мы уже пару недель используем BundleTransformer.Core.1.9.40, BundleTransformer.Less.1.9.40 и BundleTransformer.Yui.1.9.34 без каких-либо ошибок версий 1.8.

person gpersell    schedule 03.02.2015

BundleTransformer.Less не поддерживает интерполяцию строк в путях к файлам (см. «Строковая интерполяция не поддерживается?» обсуждение).

ОБНОВЛЕНИЕ: в BundleTransformer.Less версия 1.9.92 теперь поддерживает интерполяция в путях к файлам.

person Andrey Taritsyn    schedule 29.04.2014