tommueller
tommueller

Reputation: 2496

Angular build breaks when using --prod-flag

My Angular 4 build using angular-cli runs through and I can start the app, but a lot of components do not load properly. My console is filled with these error messages:

Expected function name "for", was ""
Expected function name "keyFor", was ""
Expected function name "next", was ""
Expected function name "next", was ""
Expected function name "clear", was ""
Expected function name "delete", was ""
Expected function name "entries", was ""
Expected function name "forEach", was ""
Expected function name "get", was ""
Expected function name "has", was ""
Expected function name "keys", was ""
Expected function name "set", was ""
Expected function name "values", was ""
Expected function name "next", was ""
Expected function name "add", was ""
Expected function name "clear", was ""
Expected function name "delete", was ""
Expected function name "entries", was ""
Expected function name "forEach", was ""
Expected function name "has", was ""
Expected function name "values", was ""
Expected function name "next", was ""
Expected function name "delete", was ""
Expected function name "get", was ""
Expected function name "has", was ""
Expected function name "set", was ""
Expected function name "add", was ""
Expected function name "delete", was ""
Expected function name "has", was ""
Expected function name "all", was ""
Expected function name "race", was ""
Expected function name "reject", was ""
Expected function name "resolve", was ""
Expected function name "catch", was ""
Expected function name "then", was ""

Anyone with an idea where to start to track this down?

Upvotes: 0

Views: 244

Answers (1)

tommueller
tommueller

Reputation: 2496

The answer is twofold, the errors I posted in the question refer to a polyfill I loaded (and apparently shouldn't): js-polyfills after removing this from my polyfills.ts the errors disappear.

This did not solve the bugs in my app however. After some more testing I found the problem lying in me using someObject.constructor.name === 'someString'. The angular-cli-compiler runs UglifyJS after the build process and hence changes class- and therefore constructor names. Replacing this with an explicit type-field in the class resolved the errors I experienced. Also see: https://github.com/angular/angular-cli/issues/5168

Upvotes: 2

Related Questions