Skip to content

Error: Uncaught (in promise): TypeError: Gy(…).storage is not a function when using ng build --prod #15140

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
1 task done
formster-biz opened this issue Jul 21, 2019 · 16 comments
Labels
area: @angular-devkit/build-angular needs: investigation Requires some digging to determine if action is needed
Milestone

Comments

@formster-biz
Copy link

🐞 Bug report

Command (mark with an x)

  • build

Is this a regression?

Yes, the previous version in which this bug was not present was: Yes, but I am not sure exactly what was updated since I had made several changes. I just started this project from scratch in May, so nothing was very old.

Description

I am getting this error Error: Uncaught (in promise): TypeError: Gy(...).storage is not a function but ONLY when I build and deploy my Angular project using ng build --prod. When I deploy using ng build or when I run ng serve, I do not get the error and everything works as expected.

Additionally, the error only happens when I try to route to one specific component within my app.
Further, I have discovered that when I change the "target" property under "compilerOptions" in my tsconfig.json file from es2018 to es2015 to es5 or back and forth, it changes the error slightly instead of Gy, it may say Xy, or qy.

Based on suggestions found in some slightly similar issues, I have tried the following:
-Updating all my npm packages
-Upgrading my Angular CLI as per this post: https://stackoverflow.com/a/43931987/10415078
-Running ng update (everything seems to be in order)

🔬 Minimal Reproduction

I am not sure what exactly is causing the error, but I only get it when I navigate to this specific component, and only when I've run ng build --prod.
Here are my imports for that component, but nothing really changed within this component from the time it worked to the time it didn't.

import { Component, OnInit } from '@angular/core';
import { GENERAL_REF } from '../../dbReferences';
import { DatabaseService } from 'src/app/services/database.service';
import { ProductApiService } from '../../services/product-api.service';
import { StorageService } from '../../services/storage.service';
import { Router, ActivatedRoute } from '@angular/router';
import { List } from '../../models/List';
import { User } from '../../models/User';
import { ListView } from '../../models/ListView';
import { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';

My tsconfig.json file:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types", "./typings.d.ts"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  }
}

My

🔥 Exception or Error

Error: Uncaught (in promise): TypeError: qy(...).storage is not a function
TypeError: qy(...).storage is not a function
    at VM239 main-es2015.062cd6f3017dd905f396.js:1
    at a.invoke (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at t.run (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at ar.runOutsideAngular (VM239 main-es2015.062cd6f3017dd905f396.js:1)
    at new <anonymous> (VM239 main-es2015.062cd6f3017dd905f396.js:1)
    at VM239 main-es2015.062cd6f3017dd905f396.js:1
    at xi (VM239 main-es2015.062cd6f3017dd905f396.js:1)
    at Pi (VM239 main-es2015.062cd6f3017dd905f396.js:1)
    at VM239 main-es2015.062cd6f3017dd905f396.js:1
    at xi (VM239 main-es2015.062cd6f3017dd905f396.js:1)
    at P (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at P (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1
    at a.invokeTask (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at Object.onInvokeTask (VM239 main-es2015.062cd6f3017dd905f396.js:1)
    at a.invokeTask (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at t.runTask (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at _ (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at c.invokeTask [as invoke] (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at y (VM237 polyfills-es2015.4d31cca2afc45cfd85b5.js:1)

🌍 Your Environment


Angular CLI: 8.1.2
Node: 10.16.0
OS: win32 x64
Angular: 8.1.2
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.801.2
@angular-devkit/build-angular     0.801.2
@angular-devkit/build-optimizer   0.801.2
@angular-devkit/build-webpack     0.801.2
@angular-devkit/core              8.1.2
@angular-devkit/schematics        8.1.2
@angular/fire                     5.2.1
@angular/http                     7.2.15
@ngtools/webpack                  8.1.2
@schematics/angular               8.1.2
@schematics/update                0.801.2
rxjs                              6.5.2
typescript                        3.4.5
webpack                           4.35.2

##Anything Else Relevant?
I am using Firebase and running the app on Chrome browser.
Also, I noticed in my angular.json file that I am getting an error for "$schema": "./node_modules/@angular/cli/lib/config/schema.json", that says File not found, even though that file definitely exists - I am not sure if this error has always been there or not, but everything runs fine if only I build with ng build or run ng serve.

@alan-agius4
Copy link
Collaborator

Hi, can you try updating the angular cli and build angular to next and see if the problem persists?

If the problem persists after updating, can you setup a minimal repro please?

You can read here why this is needed. A good way to make a minimal repro is to create a new app via ng new repro-app and adding the minimum possible code to show the problem. Then you can push this repository to github and link it here.

@alan-agius4 alan-agius4 added the needs: repro steps We cannot reproduce the issue with the information given label Jul 22, 2019
@formster-biz
Copy link
Author

formster-biz commented Jul 22, 2019

Can you please provide me with the correct steps to do that? I have already followed the steps below with no change:

npm uninstall -g angular-cli
npm cache clean or npm cache verify #(if npm > 5)
npm install -g @angular/cli@latest

rm -rf node_modules
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install

@alan-agius4
Copy link
Collaborator

The below command should be enough.

npm install @angular/cli@next @angular-devkit/build-angular@next --save-dev

@formster-biz
Copy link
Author

@alan-agius4 thank you for providing the command and sorry for taking so long to get back to you!
After running that, I showed that I had

    "@angular-devkit/build-angular": "^0.802.0-next.1",
    "@angular/cli": "^8.2.0-next.1",

When I ran ng build --prod after that, I got the following errors. These only showed after signing into Firebase Auth and trying to make a request to Firestore.

main-es2015.2d833ea15afb58d17bef.js:1 [2019-07-24T21:52:37.331Z]  @firebase/firestore: Firestore (6.3.1): INTERNAL UNHANDLED ERROR:  TypeError: Cannot read property 'serializer' of undefined
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:148837
    at t.watch (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:148908)
    at e.sendWatchRequest (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:174979)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:175848
    at A (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:2753)
    at e.<anonymous> (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:175811)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:333628
    at Object.next (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:333733)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:332671
    at new e (https://presently.us/polyfills-es2015.0237501fdf2cd123afaf.js:1:13013)
u @ main-es2015.2d833ea15afb58d17bef.js:1
polyfills-es2015.0237501fdf2cd123afaf.js:1 Unhandled Promise rejection: Cannot read property 'serializer' of undefined ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Cannot read property 'serializer' of undefined
    at main-es2015.2d833ea15afb58d17bef.js:1
    at t.watch (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.sendWatchRequest (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at A (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.<anonymous> (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at Object.next (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at new e (polyfills-es2015.0237501fdf2cd123afaf.js:1) TypeError: Cannot read property 'serializer' of undefined
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:148837
    at t.watch (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:148908)
    at e.sendWatchRequest (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:174979)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:175848
    at A (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:2753)
    at e.<anonymous> (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:175811)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:333628
    at Object.next (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:333733)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:332671
    at new e (https://presently.us/polyfills-es2015.0237501fdf2cd123afaf.js:1:13013)
n.onUnhandledError @ polyfills-es2015.0237501fdf2cd123afaf.js:1
polyfills-es2015.0237501fdf2cd123afaf.js:1 Uncaught TypeError: Cannot read property 'serializer' of undefined
    at main-es2015.2d833ea15afb58d17bef.js:1
    at t.watch (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.sendWatchRequest (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at A (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.<anonymous> (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at Object.next (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at new e (polyfills-es2015.0237501fdf2cd123afaf.js:1)
main-es2015.2d833ea15afb58d17bef.js:1 [2019-07-24T21:52:47.281Z]  @firebase/firestore: Firestore (6.3.1): FIRESTORE (6.3.1) INTERNAL ASSERTION FAILED: AsyncQueue is already failed: TypeError: Cannot read property 'serializer' of undefined
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:148837
    at t.watch (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:148908)
    at e.sendWatchRequest (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:174979)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:175848
    at A (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:2753)
    at e.<anonymous> (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:175811)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:333628
    at Object.next (https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:333733)
    at https://presently.us/main-es2015.2d833ea15afb58d17bef.js:1:332671
    at new e (https://presently.us/polyfills-es2015.0237501fdf2cd123afaf.js:1:13013)
u @ main-es2015.2d833ea15afb58d17bef.js:1
e.error @ main-es2015.2d833ea15afb58d17bef.js:1
m @ main-es2015.2d833ea15afb58d17bef.js:1
v @ main-es2015.2d833ea15afb58d17bef.js:1
e.verifyNotFailed @ main-es2015.2d833ea15afb58d17bef.js:1
e.enqueue @ main-es2015.2d833ea15afb58d17bef.js:1
e.enqueueAndForget @ main-es2015.2d833ea15afb58d17bef.js:1
e.handleDelayElapsed @ main-es2015.2d833ea15afb58d17bef.js:1
(anonymous) @ main-es2015.2d833ea15afb58d17bef.js:1
invokeTask @ polyfills-es2015.0237501fdf2cd123afaf.js:1
runTask @ polyfills-es2015.0237501fdf2cd123afaf.js:1
invokeTask @ polyfills-es2015.0237501fdf2cd123afaf.js:1
invoke @ polyfills-es2015.0237501fdf2cd123afaf.js:1
n.args.<computed> @ polyfills-es2015.0237501fdf2cd123afaf.js:1
polyfills-es2015.0237501fdf2cd123afaf.js:1 Uncaught Error: FIRESTORE (6.3.1) INTERNAL ASSERTION FAILED: AsyncQueue is already failed: TypeError: Cannot read property 'serializer' of undefined
    at main-es2015.2d833ea15afb58d17bef.js:1
    at t.watch (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.sendWatchRequest (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at A (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.<anonymous> (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at Object.next (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at new e (polyfills-es2015.0237501fdf2cd123afaf.js:1)
    at v (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.verifyNotFailed (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.enqueue (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.enqueueAndForget (main-es2015.2d833ea15afb58d17bef.js:1)
    at e.handleDelayElapsed (main-es2015.2d833ea15afb58d17bef.js:1)
    at main-es2015.2d833ea15afb58d17bef.js:1
    at a.invokeTask (polyfills-es2015.0237501fdf2cd123afaf.js:1)
    at t.runTask (polyfills-es2015.0237501fdf2cd123afaf.js:1)
    at invokeTask (polyfills-es2015.0237501fdf2cd123afaf.js:1)
    at invoke (polyfills-es2015.0237501fdf2cd123afaf.js:1)
v @ main-es2015.2d833ea15afb58d17bef.js:1
e.verifyNotFailed @ main-es2015.2d833ea15afb58d17bef.js:1
e.enqueue @ main-es2015.2d833ea15afb58d17bef.js:1
e.enqueueAndForget @ main-es2015.2d833ea15afb58d17bef.js:1
e.handleDelayElapsed @ main-es2015.2d833ea15afb58d17bef.js:1
(anonymous) @ main-es2015.2d833ea15afb58d17bef.js:1
invokeTask @ polyfills-es2015.0237501fdf2cd123afaf.js:1
runTask @ polyfills-es2015.0237501fdf2cd123afaf.js:1
invokeTask @ polyfills-es2015.0237501fdf2cd123afaf.js:1
invoke @ polyfills-es2015.0237501fdf2cd123afaf.js:1
n.args.<computed> @ polyfills-es2015.0237501fdf2cd123afaf.js:1

The first 3 showed immediately, and the last 2 showed up a few seconds later.
This also happened when I rebuilt with ng build (no --prod), but I got NO errors when I ran with ng serve
After that happened, I went ahead and updated the following packages, just to see if it helped, but nothing changed.

"firebase": "^6.3.1",
"firebase-admin": "^8.3.0",
"firebase-functions": "^3.2.0",
"firebase-tools": "^7.2.0",

So, I ran npm i @angular/cli@latest @angular-devkit/build-angular@latest --save-dev to put my angular cli back to where it was before, which is:

    "@angular-devkit/build-angular": "^0.801.2",
    "@angular/cli": "^8.1.2",

And now I am just back to the original error, happening on the same page and only with ng build --prod.

Does that give you any additional insight or are you still needing a repro?

Thanks!

@alan-agius4
Copy link
Collaborator

Hi @formster-biz, it would be best to provide a reproduction so that we can look at the a bit more.

Thanks

@alan-agius4
Copy link
Collaborator

Hi @formster-biz, I am thinking that your issue might be the same root cause of #15145 can you check if setting "@angular-devkit/build-angular": "0.801.0", works?

Thanks

@formster-biz
Copy link
Author

@alan-agius4 unfortunately, I am getting the same main error, although some of the details are a little different.

First I ran npm i @angular-devkit/[email protected] and now my angular version is:

Angular CLI: 8.1.2
Node: 10.16.0
OS: win32 x64
Angular: 8.1.2
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.801.2
@angular-devkit/build-angular     0.801.0
@angular-devkit/build-optimizer   0.801.0
@angular-devkit/build-webpack     0.801.0
@angular-devkit/core              8.1.2
@angular-devkit/schematics        8.1.2
@angular/fire                     5.2.1
@angular/http                     7.2.15
@ngtools/webpack                  8.1.0
@schematics/angular               8.1.2
@schematics/update                0.801.2
rxjs                              6.5.2
typescript                        3.4.5
webpack                           4.35.2

Then I ran ng build--prod and here's the error I got once I navigated to the problem page:

ERROR Error: Uncaught (in promise): TypeError: qy(...).storage is not a function
TypeError: qy(...).storage is not a function
    at main-es2015.4f3e1680e51ec4004c64.js:1
    at a.invoke (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at t.run (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at ar.runOutsideAngular (main-es2015.4f3e1680e51ec4004c64.js:1)
    at new <anonymous> (main-es2015.4f3e1680e51ec4004c64.js:1)
    at main-es2015.4f3e1680e51ec4004c64.js:1
    at xi (main-es2015.4f3e1680e51ec4004c64.js:1)
    at Pi (main-es2015.4f3e1680e51ec4004c64.js:1)
    at main-es2015.4f3e1680e51ec4004c64.js:1
    at xi (main-es2015.4f3e1680e51ec4004c64.js:1)
    at P (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at P (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at polyfills-es2015.6ea0b72173d453e298a9.js:1
    at a.invokeTask (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at Object.onInvokeTask (main-es2015.4f3e1680e51ec4004c64.js:1)
    at a.invokeTask (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at t.runTask (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at _ (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at c.invokeTask [as invoke] (polyfills-es2015.6ea0b72173d453e298a9.js:1)
    at y (polyfills-es2015.6ea0b72173d453e298a9.js:1)

Should I try to update some of those other devkit packages before creating a repro?
Thanks!

@formster-biz
Copy link
Author

It may be totally unrelated (this is all so far over my head ): ) , but I wanted to mention since it seems really weird that this error only occurs when i route to one specific component in my app - literally every other one works. This component has almost all the same imports as the others, but there is one that is used here that isn't used anywhere else in my app. This component imports/utilizes my storage.service.ts service, which in turn uses import { AngularFireStorage, AngularFireUploadTask } from '@angular/fire/storage';

The error occurs immediately before the component even has a chance to start ngOnInit, and this service is not even called automatically in ngOnInit, it is only called as needed depending on user input - so maybe it's not related...?

Anyway, I just thought it may be worth mentioning, since my error obviously says something about a .storage function.

@formster-biz
Copy link
Author

formster-biz commented Jul 25, 2019

@alan-agius4 I just commented out everything related to the storage.service.ts service that I mentioned in the previous comment from my item.component.ts component (the one that throws the error when I route to it), and rebuilt with ng build --prod and ran with no errors!!

@alan-agius4
Copy link
Collaborator

Hi @formster-biz, in that case a reproduction is definitely need to see what's going on.

Thanks.

@formster-biz
Copy link
Author

formster-biz commented Jul 27, 2019

Hi, @alan-agius4
Ok, I got the reproduction uploaded to the following repository: https://github.com/formster-biz/repro. It works fine when you open the initial "home" page, but when you route to the "item" component, you'll see the same error I am experiencing on my original project.
You can also see the error at https://repro-b32d1.firebaseapp.com/ which was built with ng build --prod - it's almost exactly the same but the function letters have changed slightly again:

ERROR Error: Uncaught (in promise): TypeError: Gd(...).storage is not a function
TypeError: Gd(...).storage is not a function
    at main-es2015.ff59a6302a369d00305c.js:1
    at a.invoke (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at t.run (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at no.runOutsideAngular (main-es2015.ff59a6302a369d00305c.js:1)
    at new <anonymous> (main-es2015.ff59a6302a369d00305c.js:1)
    at main-es2015.ff59a6302a369d00305c.js:1
    at kr (main-es2015.ff59a6302a369d00305c.js:1)
    at xr (main-es2015.ff59a6302a369d00305c.js:1)
    at main-es2015.ff59a6302a369d00305c.js:1
    at kr (main-es2015.ff59a6302a369d00305c.js:1)
    at P (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at P (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at polyfills-es2015.4d31cca2afc45cfd85b5.js:1
    at a.invokeTask (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at Object.onInvokeTask (main-es2015.ff59a6302a369d00305c.js:1)
    at a.invokeTask (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at t.runTask (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at _ (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at c.invokeTask [as invoke] (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)
    at y (polyfills-es2015.4d31cca2afc45cfd85b5.js:1)

It works fine when run with ng serve and ng build
Thank you so much for taking the time to look into this! Let me know if you need any further info.

@formster-biz
Copy link
Author

Good morning, @alan-agius4
I just wanted to check in and see if there was any progress on this yet? I've not done a repo before, so wanted to make sure everything was submitted correctly. Thanks!

@alan-agius4 alan-agius4 added area: @angular-devkit/build-angular needs: investigation Requires some digging to determine if action is needed and removed needs: repro steps We cannot reproduce the issue with the information given labels Aug 2, 2019
@ngbot ngbot bot modified the milestone: needsTriage Aug 2, 2019
@alan-agius4
Copy link
Collaborator

@formster-biz, the reproduction is great. Unfortunately I didn't have time to take a look at the problem.

@formster-biz
Copy link
Author

@alan-agius4 can you please let me know when I should expect an update on this?

@filipesilva
Copy link
Contributor

I can repro by:

  • git clone https://github.com/formster-biz/repro && cd repro
  • npm install
  • ng serve --prod
  • opening http://localhost:4200 and clicking on click for Item Component
  • the error below appears on the chrome devtools console:
core.js:9110 ERROR Error: Uncaught (in promise): TypeError: _firebaseAppFactory(...).storage is not a function
TypeError: _firebaseAppFactory(...).storage is not a function
    at storage.js:22
    at ZoneDelegate.invoke (zone-evergreen.js:359)
    at Zone.run (zone-evergreen.js:124)
    at NgZone.runOutsideAngular (core.js:34127)
    at new storage_AngularFireStorage (storage.js:20)
    at core.js:26482
    at _createProviderInstance (core.js:26436)
    at resolveNgModuleDep (core.js:26383)
    at core.js:26471
    at _createProviderInstance (core.js:26436)
    at resolvePromise (zone-evergreen.js:797)
    at resolvePromise (zone-evergreen.js:754)
    at zone-evergreen.js:858
    at ZoneDelegate.invokeTask (zone-evergreen.js:391)
    at Object.onInvokeTask (core.js:34182)
    at ZoneDelegate.invokeTask (zone-evergreen.js:390)
    at Zone.runTask (zone-evergreen.js:168)
    at drainMicroTaskQueue (zone-evergreen.js:559)
    at ZoneTask.invokeTask [as invoke] (zone-evergreen.js:469)
    at invokeTask (zone-evergreen.js:1603)

Btw this was a great repro, well done!

I tried to updating to [email protected] and @angular-devkit/[email protected] to see if the problem was still there, and it was. I also tried ng serve --prod --build-optimizer false to see if it's a Build Optimizer bug (these things often are), but I still saw the error.

There's a similar issue report in angular/angularfire#1978, but no details there.

I went to check the docs (https://github.com/angular/angularfire2/blob/master/docs/storage/storage.md) to see if there was some config item missing and saw that AngularFireStorageModule needs to be imported. I added it to src/app/app.module.ts and the problem was gone.

I think this was just a matter of a unhelpful error message from @angular/fire (cc @davideast).

@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Sep 15, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area: @angular-devkit/build-angular needs: investigation Requires some digging to determine if action is needed
Projects
None yet
Development

No branches or pull requests

3 participants