Ionic - 未捕获的语法错误:APK 上出现意外标记

Reh*_*hum 4 mobile android cordova ionic-framework angular

从昨天开始我就遇到了一个错误,我尝试修复。我使用以下方法成功构建了一个 android apk:

ionic cordova build android --prod --release
Run Code Online (Sandbox Code Playgroud)

但该应用程序在设备和模拟器(GenyMotion)上卡在白屏上。我检查了 GenyMotion 的 logcat。我想出了这些:

>  I/chromium( 5497): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token )", source: http://localhost/runtime.fcad956485f9614ff8b1.js (1)
>  D/SystemWebChromeClient( 5497): http://localhost/polyfills.49d987a1d15d60566c3f.js: Line 1 : Uncaught  SyntaxError: Unexpected token =>
> I/chromium( 5497): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token =>", source: http://localhost/polyfills.49d987a1d15d60566c3f.js (1)
> D/SystemWebChromeClient( 5497): http://localhost/main.2be168d95557cbdc0a3f.js: Line 1 : Uncaught SyntaxError: Unexpected token =>

> I/chromium( 5497): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token =>", source: http://localhost/main.2be168d95557cbdc0a3f.js (1)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么。构建时它们没有错误。

我的package.json

... 
"@angular/common": "~12.0.1",
"@angular/core": "~12.0.1",
"@angular/forms": "~12.0.1",
"@angular/platform-browser": "~12.0.1",
"@angular/platform-browser-dynamic": "~12.0.1",
"@ionic/angular": "^5.5.2",
"ionic": "^5.4.16",
"cordova-android": "^9.0.0",
"cordova-browser": "^6.0.0",
"cordova-ios": "^5.1.1",
"cordova-plugin-ionic-webview": "^5.0.0",
... 
"@typescript-eslint/eslint-plugin": "4.16.1",
"@typescript-eslint/parser": "4.16.1",
"typescript": "~4.2.4"
Run Code Online (Sandbox Code Playgroud)

我的 tsconfig.json。

...  
"target": "es2015", 
"module": "es2020",
"lib": ["es2018", "dom"] 
...  
Run Code Online (Sandbox Code Playgroud)

Reh*_*hum 13

为了解决这个问题,经过3天的真正战斗,我解决了这个问题。Ionic 5 Angular 12 在构建时使用 es2015 作为目标。我在 tsconfig.json 中将“target”设置为 es5,runtime.**.js、polyfills.**.json 中的错误消失了

es5 将 ES6 函数转换为标准函数。

更多信息请访问 https://www.typescriptlang.org/tsconfig