错误:ENOENT:没有这样的文件或目录,打开“google/protobuf/api.proto”

Dsa*_*sam 8 firebase angularfire webpack server-side-rendering angular

我想将 angular Universal 集成到我的项目中,并使用 AngularFire 库。但是当我通过运行 npm run build && npm run serve:ssr 在本地测试我的应用程序时。

我有这个错误

  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'
Run Code Online (Sandbox Code Playgroud)

小智 13

我从另一篇文章中得到了这个,但它确实帮助我解决了这个错误(我一直在寻找修复程序一段时间)。

希望这对你有用

angular.json

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

  • 有关此问题的更多详细信息:https://github.com/angular/angularfire/issues/2424#issuecomment-619239036 (2认同)