Angular 8的构建中断是由于:SyntaxError:函数外的“ return”

我有一个带有ionic 4的angular 8应用程序。将软件包更新到最新的angulars库之后,生产版本崩溃,返回SyntaxError: 'return' outside of function

这是由角度客户端在C:\ Users \ C \ AppData \ Local \ Temp \ ng-ew2jmU \ angular-errors.log下生成的完整错误:

[error] SyntaxError: 'return' outside of function
at j (C:\app\node_modules\terser\dist\bundle.min.js:1:18871)
at c (C:\app\node_modules\terser\dist\bundle.min.js:1:27588)
at C:\app\node_modules\terser\dist\bundle.min.js:1:31818
at C:\app\node_modules\terser\dist\bundle.min.js:1:28319
at C:\app\node_modules\terser\dist\bundle.min.js:1:49983
at oe (C:\app\node_modules\terser\dist\bundle.min.js:1:50120)
at Object.nr [as minify] (C:\app\node_modules\terser\dist\bundle.min.js:1:320348)
at terserMangle (C:\app\node_modules\@angular-devkit\build-angular\src\utils\process-bundle.js:181:35)
at Object.process (C:\app\node_modules\@angular-devkit\build-angular\src\utils\process-bundle.js:79:34)
at execFunction (C:\app\node_modules\jest-worker\build\workers\processChild.js:155:17)
at execHelper (C:\app\node_modules\jest-worker\build\workers\processChild.js:139:5)
at execFunction (C:\app\node_modules\jest-worker\build\workers\processChild.js:164:5)
at execMethod (C:\app\node_modules\jest-worker\build\workers\processChild.js:148:3)
at process.on.request (C:\app\node_modules\jest-worker\build\workers\processChild.js:64:7)
at process.emit (events.js:189:13)
at emit (internal/child_process.js:820:12)

这些是我package.json中的依赖项:

"dependencies": {
    "@angular/animations": "8.2.14","@angular/common": "8.2.14","@angular/core": "8.2.14","@angular/forms": "8.2.14","@angular/platform-browser": "8.2.14","@angular/platform-browser-dynamic": "8.2.14","@angular/pwa": "0.803.19","@angular/router": "8.2.14","@angular/service-worker": "8.2.14","@ionic/angular": "4.11.5","@mapbox/togeojson": "0.16.0","@ngx-translate/core": "11.0.1","@ngx-translate/http-loader": "4.0.0","@turf/turf": "5.1.6","anchorme": "1.1.2","angular-6-social-login": "1.1.1","bcryptjs": "2.4.3","chart.js": "2.9.3","chartjs-plugin-datalabels": "0.7.0","country-data": "0.0.31","croppie": "2.6.4","d3-array": "2.4.0","geoblaze": "0.2.2","is-uuid": "1.0.2","jointjs": "2.2.1","jwt-decode": "2.2.0","kalmanjs": "1.1.0","libphonenumber-js": "1.7.27","localforage": "1.7.3","localforage-cordovasqlitedriver": "1.8.0","localforage-driver-memory": "1.0.5","mathjs": "6.2.5","moment": "2.24.0","ng2-dragula": "2.1.1","ngforage": "5.0.1","ngx-bar-rating": "1.1.0","ngx-color": "4.1.0","ol": "6.1.1","ol-ext": "3.1.7","pptxgenjs": "2.6.0","shpjs": "3.4.3","svg-pan-zoom": "3.6.1","uuid": "3.3.3","core-js": "3.4.2","rxjs": "6.5.3","rxjs-tslint": "0.1.7","zone.js": "0.10.2"
},"devDependencies": {
    "@angular-devkit/architect": "0.803.19","@angular-devkit/build-angular": "0.803.19","@angular-devkit/core": "8.3.19","@angular-devkit/schematics": "8.3.19","@angular/cli": "8.3.19","@angular/compiler": "8.2.14","@angular/compiler-cli": "8.2.14","@angular/language-service": "8.2.14","@ionic/angular-toolkit": "2.1.1","@ionic/lab": "2.0.13","@types/backbone": "1.3.46","@types/chart.js": "2.9.2","@types/country-data": "0.0.1","@types/jasmine": "3.3.9","@types/jasminewd2": "2.0.6","@types/jwt-decode": "2.2.1","@types/mathjs": "6.0.2","@types/node": "12.0.8","@types/shpjs": "3.4.0","codelyzer": "5.1.0","gzip-all": "1.0.0","replace-in-file": "4.2.0","source-map-support": "0.5.16","webpack-bundle-analyzer": "3.6.0","webpack-cli": "3.3.10","webpack-node-externals": "1.7.2","ts-node": "8.5.2","tslint": "5.20.1","typescript": "3.5.3"
  },

这是已安装的Angular&ionic的全球版本:

PS C:\app> ng --version

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__,|\__,_|_|\__,_|_|       \____|_____|___|
                |___/


Angular CLI: 8.3.19
Node: 10.15.2
OS: win32 x64
Angular: 8.2.14
... animations,common,compiler,compiler-cli,core,forms
... language-service,platform-browser,platform-browser-dynamic
... router,service-worker

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.803.19
@angular-devkit/build-angular     0.803.19
@angular-devkit/build-optimizer   0.803.19
@angular-devkit/build-webpack     0.803.19
@angular-devkit/core              8.3.19
@angular-devkit/schematics        8.3.19
@angular/cli                      8.3.19
@angular/pwa                      0.803.19
@ngtools/webpack                  8.3.19
@schematics/angular               8.3.19
@schematics/update                0.803.19
rxjs                              6.5.3
typescript                        3.5.3
webpack                           4.39.2

PS C:\app> ionic --version
5.2.7
PS C:\app>

由于该错误仅在使用--prod标志进行构建时出现,因此我认为此问题必须在一个库中(可能是一个角度库中),因为我更改了它们。不幸的是,它没有告诉我在哪里...我多次运行npm i,清除了npm缓存,删除了node_modules文件夹...没有任何帮助。

有人遇到相同的错误吗? 是角度本身的错误,还是关于从哪里开始寻找的任何线索?

更新 我设法将错误界定为软件包:

    @angular-devkit/architect
    @angular-devkit/build-angular

当我将它们降级为0.803.6时,我没有收到错误,一切都很好。但是0.803.19肯定会破坏它。那么,这是一个有角度的错误吗?

b342874914 回答:Angular 8的构建中断是由于:SyntaxError:函数外的“ return”

由于仅在--prod中发生,因此很可能在提前编译和确定的代码问题中出现。从您的日志中,我看到了terser模块中的错误。我建议您检查一下webpack插件。

本文链接:https://www.f2er.com/3027671.html

大家都在问