[英]ASP.NET Core BundleMinifier removes async modifier after minification
我将bundleconfig.json
添加到 ASP.NET Core 应用程序。 它具有以下结构:
[
{
"outputFileName": "wwwroot/js/main.min.js",
"inputFiles": [
"wwwroot/js/scripts/first.js",
"wwwroot/js/scripts/second.js"
],
"minify": {
"enabled": true,
"renameLocals": true
},
"sourceMap": false
}
]
两个脚本都已缩小并合并到main.min.js
。 但在缩小后,所有async
修饰符都已从结果脚本中删除。
功能如
async function foo() {
await /* some promise */;
}
已经变成:
function foo() {await /*some promise*/;}
如何避免删除async
修饰符?
我重现了这个问题,并试图缩小一个使用ES6 specifications
及更高版本的简单 js 文件。
测试.js
async function foo() {
await bar();
}
async function bar() {
for (var i = 0; i < 10; i++) { // do some work
}
}
然后我尝试使用Bundler 和 Minifier工具缩小文件,然后抛出此错误:
这意味着Bundler 和 Minifier 不支持 ES6 规范及更高版本。
为了确认,我开始在Github 中搜索这个问题,我发现了这些相同的行为
我可以肯定地说这是Transpilers问题
转译器或源到源编译器是读取以一种编程语言编写的源代码并生成以另一种语言编写的等效代码的工具。
最常见和使用最广泛的一种是TypeScript
在某些情况下, TypeScript
会将ES6
及更高版本转换为ES5
例如:如果您将 Target 设置为ES6
和ES2015
它会转换为ES5
。 但是,如果您的目标是ES2020
则不会转译您的代码。
async
类的未知关键字,但会引发错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.