BundleTable.EnableOptimizations = false时不运行StyleTransformer;

时间:2017-02-08 14:28:36

标签: asp.net-mvc less bundle

我们正在使用脚本和样式包来缩小和捆绑我们的资源。我们还使用StyleTransformer将我们的.less文件转换为.css。

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

我们还有一个处理器指令,仅在构建非调试配置时启用优化。

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

上述目的是让我们在开发过程中更轻松地调试未打包和未经编译的javascript。

我们注意到的问题是,如果EnableOptimizations已禁用,则我们的.less文件不会被转换,而是将原始.less文件提供给浏览器。反正是否有禁用缩小和捆绑但仍能启用转换?我猜这是一个相当普遍的情况。

1 个答案:

答案 0 :(得分:0)

首先,您拥有的代码完全没必要。开箱即用,EnableOptimizations在开发中是错误的,在生产中是真的。您可能需要将其设置为某种东西的唯一原因是,如果您确实想要在开发中启用捆绑(默认情况下禁用它)。也就是说,如果StyleTransformer依赖于捆绑过程来运行,那么捆绑是一个全有或全无的事情,那么如果必须在开发中启用,或者你将得到你所拥有的。

就个人而言,我建议使用像Web Essentials Visual Studio Extension这样的东西,其中包括will auto-compile LESS into CSS on save。然后,您可以使用LESS,并简单地引用CSS版本。我确定其他具有类似功能的扩展程序。你也可以设置构建任务来运行gulp等,但这有点复杂。