【问题标题】:Are there any BundleTransformer JS minifiers that support ES6?是否有任何支持 ES6 的 BundleTransformer JS 缩小器?
【发布时间】:2016-10-05 16:19:05
【问题描述】:

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

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

但似乎都没有处理 ES6 的字符串模板语法,例如:

`Hello ${world}`

是我遗漏了什么,还是该升级到 Node + X?

【问题讨论】:

  • 对于那些因为离题而想关闭这个的人:除非我没有查看过各种在线资源,否则我不会在这里问这个问题。如果你真的认为它是题外话,让我知道为什么。如果你不这样做,我将不得不再次问这个问题。

标签: javascript asp.net-mvc-4 bundling-and-minification bundletransformer


【解决方案1】:

托莫德!

假设你有以下代码:

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

Bundle Transformer 中只有两个缩小器可以处理它:

  1. MicrosoftAjaxJsMinifier 来自 BundleTransformer.MicrosoftAjax。它只是缩小了 ES6 代码。
  2. ClosureLocalJsMinifier 来自 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 属性可以设置以下值:EcmaScript5EcmaScript5Strict

【讨论】:

  • 我已经尝试过使用 BundleTransformer.MicrosoftAjax 和 alert('Hello ${world});但我正在生成这些错误。有小费吗 ? /* 缩小失败。返回未缩小的内容。 (1,1579-1580):运行时错误 JS1014:无效字符:` (1,1586-1587):运行时错误 JS1193:预期为 ',' 或 ')':$ (1,1593-1594):运行时错误 JS1002:语法错误:} (1,1594-1595):运行时错误 JS1014:无效字符:` (1,1624-1625):运行时错误 JS1195:预期表达式:) (1,1625 -1626): 运行时错误 JS1004: 预期 ';': { */
  • @SzilardD 尝试安装一个新模块 - BundleTransformer.NUglify
猜你喜欢
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 1970-01-01
  • 2015-03-04
相关资源
最近更新 更多