我尝试使用Angular Universal和Firebase云功能创建一个带有服务器端渲染(SSR)的Angular4应用程序。
使用ng serve
运行应用程序没有问题,但在使用ng build --prod --aot -app 0
和ng build --prod --aot -app 1
构建应用程序和服务器,并使用tsc -p ./server/tsconfig.functions.json
编译服务器文件后启动应用程序使用firebase serve --only hosting,functions
,我在控制台中收到错误:Error from emulator. FirebaseError: Error parsing triggers: Cannot find module 'grpc'
。
我曾尝试在函数目录中重新安装firebase-functions,但这并没有解决问题。
这是我的依赖项对象:
"dependencies": {
"@angular/animations": "^4.4.6",
"@angular/common": "^4.4.6",
"@angular/compiler": "^4.4.6",
"@angular/core": "^4.4.6",
"@angular/forms": "^4.4.6",
"@angular/http": "^4.4.6",
"@angular/platform-browser": "^4.4.6",
"@angular/platform-browser-dynamic": "^4.4.6",
"@angular/router": "^4.4.6",
"angularfire2": "^5.0.0-rc.2",
"firebase": "^4.5.0",
"firebase-admin": "^5.4.2",
"firebase-functions": "^0.7.2",
"rxjs": "^5.4.2",
"core-js": "^2.4.1",
"zone.js": "^0.8.14",
"express": "^4.16.2",
},
我花了几个小时试图找出这个问题,但没有运气。 是否有人遇到此错误?任何帮助将不胜感激。
答案 0 :(得分:0)
我知道您现在可能已经解决了这个问题,或者已经继续前进,但是对于像我这样遇到类似问题的其他人,这就是我解决的方法。 (请注意,我没有与您完全相同的问题,但也找不到gprc
。)
我安装了一个名为reinstall的Node模块:
npm install reinstall -g
然后导航到functions
目录,然后运行:
sudo reinstall
等待它完成,然后sudo firebase functions:shell
工作正常!
请注意,我认为这可能会根据您的package.json
的设置方式来更新您的依赖项,但是我的所有依赖项都使用了caret range,它只允许进行一些次要的和补丁更新。