我想将angular Universal集成到我的项目中,并使用AngularFire库。但是,当我通过运行npm在本地测试我的应用程序时,运行build && npm运行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'
答案 0 :(得分:9)
我从另一篇文章中得到了这个信息,但是它确实帮助我解决了该错误(我已经在寻找修复了一段时间了。)
希望它对您有用
angular.json
"server": {
"builder": "@angular-devkit/build-angular:server",
"options": {
"outputPath": "dist/TeacherKellyUKA/server",
"main": "server.ts",
"tsConfig": "tsconfig.server.json",
"externalDependencies": ["@firebase/firestore"]
},
答案 1 :(得分:0)
这是AngularFirestoreModule的问题。我已经更新了package.json中的行,并且工作正常。我正在使用角度版本8。
“ bundleDependencies全部”到“ bundleDependencies全部”
"build:client-and-server-bundles": "ng build --prod && ng run web:server:production --bundleDependencies none"
答案 2 :(得分:0)
@essemoon0提供的应用解决方案已修复该错误。运行firebase serve
效果很好。但是,运行firebase deploy
带来了另一个问题cannot find module @firebase/firestore
。经过多次试验,我找到了解决方案。
根据@essemoon0的预测,首先按如下所示将@firebase/firestore
作为外部依赖项添加到angular.json
中
"server": {
"builder": "@angular-devkit/build-angular:server",
"options": {
"outputPath": "dist/TeacherKellyUKA/server",
"main": "server.ts",
"tsConfig": "tsconfig.server.json",
"externalDependencies": ["@firebase/firestore"]
},
然后导航到您的functions
目录并安装@firebase/firestore
和firebase/app
软件包。
cd functions
npm i @firebase/app @firebase/firestore
现在您可以运行您的应用了。 这对我有用。希望对您有帮助。