[英]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.