【问题标题】:Microsoft.AspNet.Web.Optimization JavaScript bundling fails to minify template literalsMicrosoft.AspNet.Web.Optimization JavaScript 捆绑无法缩小模板文字
【发布时间】:2017-08-13 12:58:13
【问题描述】:

使用Microsoft.AspNet.Web.Optimization v1.1.3latest version,如果JavaScript 包含template literals,我无法通过捆绑来缩小JavaScript。例如,如果我在我的捆绑脚本之一中包含以下内容:

var name = 'Bob';
var formattedName = `${name} says hello`;

生成的包将加入所有文件,但不会缩小代码,并给我这个错误:

/* Minification failed. Returning unminified contents.
(2,13-14): run-time error JS1014: Invalid character: `
(2,15-16): run-time error JS1004: Expected ';': {
(2,30-31): run-time error JS1014: Invalid character: `
(3,1-2): run-time error JS1107: Expecting more source characters
*/

我了解此功能仅在 ECMAScript2015 中引入,它显然不受支持,但除了恢复到旧的字符串连接方法之外,是否有干净的解决方法?

var name = 'Bob';
var formattedName = name + ' says hello';

另外,Microsoft.AspNet.Web.Optimization 的未来版本是否会支持模板文字?

【问题讨论】:

  • 解决这个问题有什么乐趣吗?或者它仍然是一个问题?
  • 不,我没有解决这个问题。我最终重构了应用程序,使用 Gulp、Babel 和各种其他 JS 库来捆绑应用程序,因为我没有使用任何 .NET 功能。一种方法是使用 Babel 将您的代码转换为与之兼容的旧版 JavaScript。或者干脆使用另一个捆绑库

标签: javascript c# asp.net model-view-controller bundling-and-minification


【解决方案1】:

我正在使用bundleconfig.json 方法来缩小一些脚本文件,并且在运行相应的任务时遇到了类似的错误:

Illegal assignment: =
Expected ';'
Expected ';'
Expected expression
Expected '}'

我设法改变了这个文字:

style.textContent = `
...
`;

到这里:

style.textContent = `
...`;

它可能不会回答您的具体问题(就像您使用 Gulp 一样),但可能会帮助那些不想开始使用 npm 的各种软件包来实现相同目标的人。

【讨论】:

  • 这个技巧仍然可以解决问题,尾随反引号需要与字符串末尾在同一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 2017-12-13
  • 2014-11-26
相关资源
最近更新 更多