我正在使用最新的BundleTransformer for ASP.NET。
我有一个非常简单的捆绑文件,其中包含一个LESS文件:
var cssBundle = new CustomStyleBundle("~/Content/css/bundle").Include(
"~/Content/css/test.less");
bundles.Add(cssBundle);
LESS文件我尽可能简单地证明它实际上正确地解释为LESS。
.something
{
ol, ul
{
list-style: none;
}
}
当我尝试使用V8JsEngine时,它按预期工作(显示相关的web.config):
<css defaultMinifier="KryzhanovskyCssMinifier" usePreMinifiedFiles="false">
<minifiers>
<add name="KryzhanovskyCssMinifier" type="BundleTransformer.Csso.Minifiers.KryzhanovskyCssMinifier, BundleTransformer.Csso" />
</minifiers>
</css>
<csso>
<css disableRestructuring="false" />
<jsEngine name="V8JsEngine" />
</csso>
这给了我正确的CSS:
.something ol,.something ul{list-style:none}
然而,当我切换到MsieJSEngine
时<csso>
<css disableRestructuring="false" />
<jsEngine name="MsieJsEngine" />
</csso>
我得到以下奇怪的不正确的CSS - 完全剥离了UL。
.something ol{list-style:none}
我无法理解这是怎么回事。它被正确解释为LESS,但完全从列表中删除了UL。顺便说一下,如果我只使用一个没有.something
类的纯css文件,我会得到相同的错误结果。
幸运的是,它似乎与V8JsEngine一起工作得很好,所以我可以继续,但我在这里发布这个希望能帮助别人,因为我很好奇我是否做错了。
档案版本:
BundleTransformer.Core - 1.9.3.0
BundleTransformer.Csso - 1.9.1.0
BundleTransformer.Less - 1.9.1.0
BundleTransformer.MicrosoftAjax - 1.9.1.0
答案 0 :(得分:1)
对于BundleTransformer.Csso需要ECMAScript 5的完全支持,这只能在MSIE JavaScript Engine for .NET的ChakraJsRt
模式下实现。从文档中引用:
Chakra JavaScript引擎的JsRT版本(支持ECMAScript 5)。在计算机上需要Internet Explorer 11或更高版本。
顺便提一下,BundleTransformer.Csso NuGet-package的描述有以下要求:
为了正确使用此模块,建议安装以下NuGet包:JavaScriptEngineSwitcher.V8或JavaScriptEngineSwitcher.Msie(仅限
ChakraJsRt
模式)。