【问题标题】:Error: Cannot find module '@firebase/app' when deploying in Firebase functions错误:在 Firebase 函数中部署时找不到模块“@firebase/app”
【发布时间】:2020-04-08 15:19:06
【问题描述】:

我最近开始了一个新项目,并使用 AngularFire 进行 Firebase 托管。几天前,AngularFire 团队做了一项令人难以置信的工作,并推出了用于将 Angular SSR 应用程序部署到 firebase 托管/功能的一个衬垫。

在我添加 FirbaseAuthModule 之前一切都运行良好,现在它给了我Error not able to load @firebase\app module。不确定是否有人在部署到 firebase 时遇到错误。

我按照AngualrFire doc - https://github.com/angular/angularfire/blob/master/docs/deploy/getting-started.md 中提到的步骤进行了操作

我使用 ng deploy 在 firebase 中托管/功能(这不起作用) 我使用ng deploy --preview 进行本地测试(这是有效的)

在一年前报告的一个问题中,有人提到您还需要将 firebase 和 angularfire 安装到 /functions 但现在这是由 AngularFire 每次您执行 ng deploy 时生成的,所以我有点卡住了在这里。

Detailed stack trace: Error: Cannot find module 'firebase/app'
     at Function.Module._resolveFilename (module.js:548:15)
     at Function.Module._load (module.js:475:25)
     at Module.require (module.js:597:17)
     at require (internal/module.js:11:18)
     at webpackUniversalModuleDefinition (/srv/dist/server.js:3:28)
     at Object.<anonymous> (/srv/dist/server.js:10:3)
     at Module._compile (module.js:653:30)
     at Object.Module._extensions..js (module.js:664:10)
     at Module.load (module.js:566:32)
     at tryModuleLoad (module.js:506:12)

我的package.json依赖如下

"dependencies": {
    "@angular/animations": "^9.1.0",
    "@angular/cdk": "^9.2.0",
    "@angular/common": "^9.1.0",
    "@angular/compiler": "^9.1.0",
    "@angular/core": "^9.1.0",
    "@angular/fire": "^6.0.0",
    "@angular/flex-layout": "^9.0.0-beta.29",
    "@angular/forms": "~9.1.0",
    "@angular/localize": "^9.1.0",
    "@angular/material": "^9.2.0",
    "@angular/platform-browser": "~9.1.0",
    "@angular/platform-browser-dynamic": "~9.1.0",
    "@angular/platform-server": "~9.1.0",
    "@angular/router": "~9.1.0",
    "@fortawesome/angular-fontawesome": "^0.6.1",
    "@fortawesome/fontawesome-svg-core": "^1.2.28",
    "@fortawesome/free-brands-svg-icons": "^5.13.0",
    "@fortawesome/free-regular-svg-icons": "^5.13.0",
    "@fortawesome/free-solid-svg-icons": "^5.13.0",
    "@nguniversal/express-engine": "^9.1.0",
    "@ngx-translate/core": "^12.1.2",
    "@ngx-translate/http-loader": "^4.0.0",
    "express": "^4.15.2",
    "firebase": "^7.13.2",
    "ngx-image-zoom": "^0.6.0",
    "ngx-img-zoom": "^4.1.2",
    "ngx-pagination": "^5.0.0",
    "ngx-spinner": "^9.0.2",
    "ngx-swiper-wrapper": "^9.0.1",
    "rxjs": "^6.5.5",
    "tslib": "^1.10.0",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/architect": "^0.900",
    "@angular-devkit/build-angular": "^0.901.0",
    "@angular/cli": "^9.1.0",
    "@angular/compiler-cli": "^9.1.0",
    "@angular/language-service": "^9.1.0",
    "@nguniversal/builders": "^9.1.0",
    "@types/express": "^4.17.0",
    "@types/jasmine": "^3.5.0",
    "@types/jasminewd2": "^2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^5.1.2",
    "firebase-admin": "^8.10.0",
    "firebase-functions": "^3.6.0",
    "firebase-functions-test": "^0.1.7",
    "firebase-tools": "^8.0.1",
    "fuzzy": "^0.1.3",
    "inquirer": "^6.2.2",
    "inquirer-autocomplete-prompt": "^1.0.1",
    "jasmine-core": "~3.5.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.4.1",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~2.1.0",
    "karma-jasmine": "~3.0.1",
    "karma-jasmine-html-reporter": "^1.4.2",
    "protractor": "~5.4.3",
    "ts-node": "~8.3.0",
    "tslint": "~6.1.0",
    "typescript": "~3.8.3"
  }

【问题讨论】:

    标签: firebase angularfire2 angularfire


    【解决方案1】:

    Looking at the source code, looks like your issue has been fixed.

    脚本当前将 angular.json 中列出的 externalDependencies 用于服务器构建并将其添加到函数 package.json。部署云功能时,Google 云将安装所有这些依赖项,您的 SSR 将正常工作(在本地它已经可以工作,因为您的 node_modules 中有 firebase)。

    该方法可行,但我个人更喜欢拥有自己的函数文件夹,这样我还可以添加其他函数,并且我可以更好地控制我的代码。我刚刚遇到了同样的问题,我只是将 firebase 安装到我的函数中以使部署正常工作。 I'm doing some boilerplate with Angular, Tailwind, HMR, SSR and Firebase if you want to take a look.

    【讨论】:

      【解决方案2】:

      试试“npm i @firebase/app”,好像那个包不见了link to package

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-12
        • 2018-03-31
        • 1970-01-01
        • 1970-01-01
        • 2018-03-31
        • 2017-09-18
        • 1970-01-01
        • 2020-07-09
        相关资源
        最近更新 更多