2017-02-08 3 views
0

Мы используем набор скриптов и стилей для минимизации и связывания наших ресурсов. Мы также используем StyleTransformer для перевода наших .less файлов в .css.StyleTransformer не запускается, когда BundleTable.EnableOptimizations = false;

coreCsss.Transforms.Add(new StyleTransformer()); 
coreCss.Include("~/Content/Common/Styles/core.less"); 

У нас также есть директива процессора, позволяющая оптимизировать только при построении конфигурации без отладки.

#if DEBUG 
      BundleTable.EnableOptimizations = false; 
#else 
      BundleTable.EnableOptimizations = true; 
#endif 

Намерение выше, чтобы позволить нам более легко отлаживать неупакованный и unminified JavaScript в процессе разработки.

Проблема, которую мы заметили, заключается в том, что с EnableOptimizations отключены, тогда наши .less-файлы не передаются, и вместо этого в браузере подается необработанное .less. В любом случае, чтобы отключить минимизацию и объединение, но все же включить преобразование? Я бы предположил, что это довольно распространенный сценарий.

ответ

0

Во-первых, код, который у вас есть, совершенно не нужен. Из таблицы EnableOptimizations является ложным в разработке и действительно в производстве. Единственная причина, по которой вам может потребоваться установить что-то, это если вы действительно хотели включить пакет в разработке (где он по умолчанию отключен). Тем не менее, связывание - это все или ничего, если StyleTransformer зависит от процесса связывания, чтобы функционировать, тогда, если он будет включен в процессе разработки, или вы получите именно то, что у вас есть.

Лично я бы рекомендовал использовать что-то наподобие Web Essentials Visual Studio Extension, которое среди прочего, will auto-compile LESS into CSS on save. Затем вы можете работать с LESS и просто ссылаться на версию CSS. Я уверен, что есть другие расширения с аналогичной функциональностью. Вы также можете настроить задачи сборки для запуска gulp и т. Д., Но это немного сложнее.