是否有任何支持EcmaScript 6的BundleTransformer JS缩小器?我尝试安装:

  • BundleTransformer.closure
  • BundleTransformer.YUI
  • BundleTransformer.UglifyJs

  • 但是似乎都无法处理ES6的字符串模板语法,例如:
    `Hello ${world}`
    

    我是否缺少某些东西,还是该升级到Node + X了?

    最佳答案

    托莫德!

    假设您有以下代码:

    var world = 123;
    alert(`Hello ${world}`);
    

    Bundle Transformer中只有两个minifier可以处理它:

    BundleTransformer.MicrosoftAjax中的
  • MicrosoftAjaxJsMinifier。它只是缩小了ES6代码。
  • 带有以下配置设置的BundleTransformer.Closure中的
  • ClosureLocalJsMinifier:
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      …
      <bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
        …
        <closure>
          <js>
            …
            <local closureCompilerApplicationPath="…"
              javaVirtualMachinePath="…"
              languageInput="EcmaScript6" languageOutput="EcmaScript3" />
            …
          </js>
        </closure>
        …
      </bundleTransformer>
      …
    </configuration>
    

  • 将进行从ES6到ES3的转换,然后最小化ES3代码。另外,可以为languageOutput属性设置以下值:EcmaScript5EcmaScript5Strict

    10-02 20:04