Есть ли какие-нибудь минифайеры BundleTransformer JS, которые поддерживают ES6?

Существуют ли JS minifiers для BundleTransformer, которые поддерживают EcmaScript 6? Я попытался установить:

  • BundleTransformer.Closure
  • BundleTransformer.YUI
  • BundleTransformer.UglifyJs

Но ни один из них не поддерживает синтаксис строковых шаблонов ES6, например:

`Hello ${world}`

Я что-то упустил или пришло время перейти на Node + X?

1 ответ

Tormod!

Предположим, у вас есть следующий код:

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

Только два мини-фильтра от Bundle Transformer могут обработать его:

  1. MicrosoftAjaxJsMinifier от https://www.nuget.org/packages/BundleTransformer.MicrosoftAjax/. Это просто минимизирует код ES6.
  2. ClosureLocalJsMinifier из https://www.nuget.org/packages/BundleTransformer.Closure/ со следующими параметрами конфигурации:

    <?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 Атрибут может быть задан следующими значениями: EcmaScript5 а также EcmaScript5Strict,

Другие вопросы по тегам