AnthonyNahas / ngx-auth-firebaseui

Angular Material UI component for firebase authentication
https://ngx-auth-firebaseui.firebaseapp.com
MIT License
587 stars 165 forks source link

Building ngx-auth-firebaseui is broken after Angular 13 upgrade #645

Closed AndriiNeverov closed 2 years ago

AndriiNeverov commented 2 years ago

Bug Report or Feature Request (mark with an x)

- [x] bug report -> please search issues before submitting
- [ ] feature request

OS and Version?

Big Sur

Versions

../../node_modules/.bin/ng --version

Angular CLI: 13.0.1 Node: 14.18.1 Package Manager: npm 6.14.15 OS: darwin x64

Angular: 13.0.0 ... animations, cdk, common, compiler, compiler-cli, core, forms ... language-service, material, platform-browser ... platform-browser-dynamic, platform-server, router

Package Version

@angular-devkit/architect 0.1300.1 (cli-only) @angular-devkit/build-angular 13.0.1 @angular-devkit/core 13.0.1 @angular-devkit/schematics 12.2.13 @angular/cli 13.0.1 @angular/fire 7.1.1 @angular/flex-layout 11.0.0-beta.33 @nguniversal/builders 11.1.0 @nguniversal/express-engine 11.1.0 @schematics/angular 12.2.13 ng-packagr 13.0.3 rxjs 6.6.3 typescript 4.4.4

Repro steps

git clone https://github.com/AnthonyNahas/ngx-auth-firebaseui cd ngx-auth-firebaseui npm install cd projects/ngx-auth-firebaseui/ npm run build

../../node_modules/.bin/ng build ngx-auth-firebaseui --prod

Option "--prod" is deprecated: Use "--configuration production" instead.
Building Angular Package

------------------------------------------------------------------------------
Building entry point 'ngx-auth-firebaseui'
------------------------------------------------------------------------------
✖ Compiling with Angular sources in Ivy partial compilation mode.
src/lib/components/ngx-auth-firebaseui/auth.component.ts:72:1 - error NG3003: One or more import cycles would need to be created to compile this component, which is not supported by the current compiler configuration.

 72 @Component({
    ~~~~~~~~~~~~
 73   selector: "ngx-auth-firebaseui",
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
448   }
    ~~~
449 }
    ~

  src/lib/components/providers/auth.providers.component.ts:22:1
     22 @Component({
        ~~~~~~~~~~~~
     23   selector: 'ngx-auth-firebaseui-providers',
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ...
     70

     71 }
        ~
    The component 'AuthProvidersComponent' is used in the template but importing it would create a cycle: /Users/aneverov/src/test/repro/ngx-auth-firebaseui/projects/ngx-auth-firebaseui/src/lib/components/ngx-auth-firebaseui/auth.component.ts -> /Users/aneverov/src/test/repro/ngx-auth-firebaseui/projects/ngx-auth-firebaseui/src/lib/components/providers/auth.providers.component.ts -> /Users/aneverov/src/test/repro/ngx-auth-firebaseui/projects/ngx-auth-firebaseui/src/lib/components/index.ts -> /Users/aneverov/src/test/repro/ngx-auth-firebaseui/projects/ngx-auth-firebaseui/src/lib/components/ngx-auth-firebaseui/auth.component.ts
src/lib/components/ngx-auth-firebaseui-login/ngx-auth-firebaseui-login.component.ts:10:1 - error NG3003: One or more import cycles would need to be created to compile this component, which is not supported by the current compiler configuration.

 10 @Component({
    ~~~~~~~~~~~~
 11   selector: 'ngx-auth-firebaseui-login',
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
108   }
    ~~~
109 }
    ~

  src/lib/components/providers/auth.providers.component.ts:22:1
     22 @Component({
        ~~~~~~~~~~~~
     23   selector: 'ngx-auth-firebaseui-providers',
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ...
     70

     71 }
        ~
    The component 'AuthProvidersComponent' is used in the template but importing it would create a cycle: /Users/aneverov/src/test/repro/ngx-auth-firebaseui/projects/ngx-auth-firebaseui/src/lib/components/ngx-auth-firebaseui-login/ngx-auth-firebaseui-login.component.ts -> /Users/aneverov/src/test/repro/ngx-auth-firebaseui/projects/ngx-auth-firebaseui/src/lib/components/providers/auth.providers.component.ts -> /Users/aneverov/src/test/repro/ngx-auth-firebaseui/projects/ngx-auth-firebaseui/src/lib/components/index.ts -> /Users/aneverov/src/test/repro/ngx-auth-firebaseui/projects/ngx-auth-firebaseui/src/lib/components/ngx-auth-firebaseui-login/ngx-auth-firebaseui-login.component.ts

The log given by the failure

Desired functionality

Mention any other details that might be useful

The workaround found so far:

projects/ngx-auth-firebaseui/tsconfig.lib.prod.json

-  "angularCompilerOptions": {
-    "compilationMode": "partial"
+  "angularCompilerOptions": {    
+    "enableIvy": true
AnthonyNahas commented 2 years ago

https://www.npmjs.com/package/ngx-auth-firebaseui v6

is now online

<3