如何防止在BundleTransformer中使用* .min.js?

时间:2014-11-14 08:06:02

标签: asp.net bundle

我使用 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 文件。

2 个答案:

答案 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。