9

I want to integrate angular universal into my project and I use AngularFire library. But when I test my app locally by running npm run build && npm run serve:ssr.

I have this error

  webpack:///./dist/server/main.js?:95613
                throw err;
                ^

    Error: ENOENT: no such file or directory, open 'google/protobuf/api.proto'
        at Object.openSync (fs.js:440:3)
        at Object.readFileSync (fs.js:342:35)
        at fetch (webpack:///./dist/server/main.js?:95679:34)
        at Root.load (webpack:///./dist/server/main.js?:95713:13)
        at Root.loadSync (webpack:///./dist/server/main.js?:95754:17)
        at Object.loadSync (webpack:///./dist/server/main.js?:133270:17)
        at Object.8ZNE (webpack:///./dist/server/main.js?:98662:37)
        at __webpack_require__ (webpack:///./dist/server/main.js?:20:30)
        at Object.BYZf (webpack:///./dist/server/main.js?:104679:19)
        at __webpack_require__ (webpack:///./dist/server/main.js?:20:30) {
      errno: -2,
      syscall: 'open',
      code: 'ENOENT',

  path: 'google/protobuf/api.proto'
Dharman
  • 30,962
  • 25
  • 85
  • 135
Dsam
  • 91
  • 1
  • 2

3 Answers3

14

I got this from another post, but it did help me out to fix that error (I had been looking for fixes for a while now).

Hope it works for you

angular.json

"server": {
  "builder": "@angular-devkit/build-angular:server",
    "options": {
      "outputPath": "dist/TeacherKellyUKA/server",
      "main": "server.ts",
      "tsConfig": "tsconfig.server.json",
      "externalDependencies": ["@firebase/firestore"]
  },
jessemoon0
  • 141
  • 1
  • 3
  • 2
    More detail on this issue: https://github.com/angular/angularfire/issues/2424#issuecomment-619239036 – Tang Thanh Tam May 05 '20 at 15:34
  • bravo...I have been looking for a solution for 2 days...thank you so much... – Srujal Patel May 10 '20 at 19:35
  • Hi @jessemoon0, after adding externalDependencies, I am getting this error. Schema validation failed with the following errors: Data path "" should NOT have additional properties(externalDependencies). how to solve this? – Nomura Nori Mar 25 '21 at 16:31
1

This is an issue with AngularFirestoreModule. I have updated below line in package.json and it is working fine. I am using angular version 8.

"bundleDependencies all" to "bundleDependencies none"

"build:client-and-server-bundles": "ng build --prod && ng run web:server:production --bundleDependencies none"
Ajay Nikam
  • 279
  • 5
  • 18
0

Applying solution provided by @essemoon0 fixed the error. Running firebase serve worked well. However, running firebase deploy brought another issue cannot find module @firebase/firestore. After many trials I was able to find a solution.

As projected by @essemoon0 , first add @firebase/firestore as an external dependency in angular.json as follows

"server": {
  "builder": "@angular-devkit/build-angular:server",
    "options": {
      "outputPath": "dist/TeacherKellyUKA/server",
      "main": "server.ts",
      "tsConfig": "tsconfig.server.json",
      "externalDependencies": ["@firebase/firestore"]
  },

Then navigate to your functions directory and install @firebase/firestore and firebase/app packages.

cd functions

npm i @firebase/app @firebase/firestore

Now you can run your app. This worked for me. Hope it does for you.

KevinKimaru
  • 56
  • 2
  • 4