'"ERROR in getInternalNameOfClass() called on a non-ES5 class: expected AngularFireModule to have an inner class declaration"
Terminal -
"WARNING in Invalid constructor parameter decorator in D:/New folder/SilverLife/node_modules/@angular/fire/fesm2015/angular-fire.js:
() => [
{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
]
ERROR in getInternalNameOfClass() called on a non-ES5 class: expected
AngularFireModule to have an inner class declaration"
I am facing this issue while integrating Angular firebase in my Angular 9 project.

Solution 1:[1]
I encountered same issue during migration from Angular8 to Angular9.
In Angular9 they introduced new generation compilation and rendering pipeline called Angular Ivy. The documentation says:
Ivy applications can be built with libraries that were created with the View Engine compiler. This compatibility is provided by a tool known as the Angular compatibility compiler (ngcc). CLI commands run ngcc as needed when performing an Angular build.
Source: https://angular.io/guide/ivy
So in order to project with "target": "es5" work, after using npm install you have to run ngcc.
You can add it in your package.json file:
{
"scripts": {
"postinstall": "ngcc"
}
}
Then it should run automaticly after running npm install.
Solution 2:[2]
I had to use the following in tsconfig.json:
"angularCompilerOptions": {
"enableIvy": false,
}
Not ideal but it worked.
Adding
"scripts": {
"postinstall": "ngcc"
}
to package.json and changing target to es2015 in tsconfig.json didn't work - probably some other setting(s) messing with them.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | tschumann |
