我使用 BundleTransformer.Core 1.9.25 。我在包中加入了 angular-animate.js 。但是在生成的bundle文件中,我看到了错误:
/* Minification failed. Returning unminified contents.
(402,118-125): run-time error JS1019: Can't have 'break' outside of loop: break a
原因是该捆绑包使用 angular-animate.min.js 而不是 angular-animate.js 。当我删除 angular-animate.min.js 文件时,它使用 angular-animate.js 并且没有错误。
Web.config 包含:
<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
<core>
<js usePreMinifiedFiles="false">
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
</translators>
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
</minifiers>
<fileExtensions>
<add fileExtension=".js" assetTypeCode="JavaScript" />
</fileExtensions>
</js>
</core>
</bundleTransformer>
如您所见,usePreMinifiedFiles=false
属性并未阻止使用现有的 * .min.js 文件。
答案 0 :(得分:4)
我忘了在 App_Start / BundleConfig.cs 中添加ScriptTransformer
:
var scriptTransformer = new ScriptTransformer();
bundle.Transforms.Add(scriptTransformer);
解决了这个问题。
但是我选择了解决方案而没有使用ScriptTransformer
(BundleTransformer.Core)。正在清理FileExtensionReplacementList
列表:
bundles.FileExtensionReplacementList.Clear();
默认情况下,FileExtensionReplacementList
有两个值:
.Add("min", OptimizationMode.WhenEnabled);
.Add("debug", OptimizationMode.WhenDisabled);
这是我的问题的原因。
答案 1 :(得分:-1)
在BundleConfig.cs文件中找到
BundleTable.EnableOptimizations = true;
并将值更改为false。