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

diz*_*l3d 5 asp.net bundle

我使用BundleTransformer.Core 1.9.25。我已将angular-animate.js包含在捆绑包中。但在生成的捆绑文件中我看到了错误:

/* Minification failed. Returning unminified contents.
(402,118-125): run-time error JS1019: Can't have 'break' outside of loop: break a
Run Code Online (Sandbox Code Playgroud)

原因是该包使用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>
Run Code Online (Sandbox Code Playgroud)

如您所见,usePreMinifiedFiles=false属性不会阻止使用现有的*.min.js文件。

diz*_*l3d 5

我只是忘记添加ScriptTransformerApp_Start /BundleConfig.cs

var scriptTransformer = new ScriptTransformer();
bundle.Transforms.Add(scriptTransformer);
Run Code Online (Sandbox Code Playgroud)

它解决了问题。

ScriptTransformer但我选择了不使用(BundleTransformer.Core)的解决方案。正在清理FileExtensionReplacementList列表:

bundles.FileExtensionReplacementList.Clear();
Run Code Online (Sandbox Code Playgroud)

默认情况下FileExtensionReplacementList有两个值:

.Add("min", OptimizationMode.WhenEnabled);
.Add("debug", OptimizationMode.WhenDisabled);
Run Code Online (Sandbox Code Playgroud)

这是我的问题的一个原因。