在部署云功能时出现了@grpc/grpc-js only works on Node ^8.13.0 || >=10.10.0
错误。我安装了nvm
并使用Firebase工具版本7.8.1将节点更新为12.13.1。我再次运行npm install并重新部署了我的云功能,并抛出了以下错误消息:
错误:错误分析触发条件:找不到模块“ firebase”
需要堆栈:
/Users/chriscynn/Desktop/pretzly/pretzly/functions/index.js
/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js
我知道这意味着node_modules文件夹中的firebase模块不存在,这是事实。因此,我输入了npm install firebase
命令,并在最底部完全粘贴了打印出来的内容。
在过去的几天里辛苦劳作的任何帮助(清除,安装,重新安装,卸载等)都将不胜感激,并且找不到解决的希望。我是编程新手,对CLI的了解更糟。
package.json
是... 1。 grpc@1.20.0 install / Users / me / Desktop / appName / appName / functions / node_modules / grpc
node-pre-gyp install --fallback-to-build --library = static_library
node-pre-gyp警告使用针进行node-pre-gyp https下载
node-pre-gyp WARN试图下载(404): https://node-precompiled-binaries.grpc.io/grpc/v1.20.0/node-v72-darwin-x64-unknown.tar.gz
node-pre-gyp WARN找不到针对grpc@1.20.0和 node@12.13.1(node-v72 ABI,未知)(回源编译) 使用node-gyp)
2。 打印出“ CXX(target)Release / obj.target ...”的行
3。 ../ext/channel.cc:292:56:错误:函数调用的参数太少, 预期2,有1
int try_to_connect = (int)info [0]->等于(Nan :: True());/Users/me/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2616:3: 注意:在此处声明“等于” V8_WARN_UNUSED_RESULT也许 等于(本地上下文,
/Users/me/Library/Caches/node-gyp/12.13.1/include/node/v8config.h:351:31: 注意:从宏“ V8_WARN_UNUSED_RESULT”扩展 定义V8_WARN_UNUSED_RESULT属性((warn_unused_result))
1个错误。
make:*** [Release / obj.target / grpc_node / ext / channel.o]错误1
gyp错误!构建错误
gyp错误!堆栈错误:make失败,退出代码:2
gyp错误!堆栈在ChildProcess.onExit(/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp错误!堆栈在ChildProcess.emit(events.js:210:5)
gyp错误!堆栈位于Process.ChildProcess._handle.onexit(internal / child_process.js:272:12)
gyp错误!系统达尔文18.7.0
gyp错误!命令“ / usr / local / bin / node”“ /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js”“ build”“ --fallback-to-build”“ --library = static_library“” --module = / Users / me / Desktop / appName / appName / functions / node_modules / grpc / src / node / extension_binary / node-v72-darwin-x64-unknown / grpc_node.node“”- -module_name = grpc_node“” --module_path = / Users / me / Desktop / appName / appName / functions / node_modules / grpc / src / node / extension_binary / node-v72-darwin-x64-unknown“ “ --napi_version = 5”“ --node_abi_napi = napi”“ --napi_build_version = 0” “ --node_napi_label = node-v72”
gyp错误! cwd / Users / me / Desktop / appName / appName / functions / node_modules / grpc
gyp错误!节点-v v12.13.1
gyp错误! node-gyp -v v5.0.5
gyp错误!不好
node-pre-gyp ERR!构建错误
node-pre-gyp ERR!堆栈错误:无法执行'/ usr / local / bin / node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library = static_library --module = /用户/我/桌面/appName/appName/functions/node_modules/grpc/src/node/extension_binary/node-v72-darwin-x64-unknown/grpc_node.node --module_name = grpc_node --module_path = /用户/我/桌面/ appName / appName /功能/ node_modules / grpc / src / node / extension_binary / node-v72-darwin-x64-unknown --napi_version = 5 --node_abi_napi = napi --napi_build_version = 0- node_napi_label = node-v72'(1)
node-pre-gyp ERR!堆栈在ChildProcess上。 (/Users/me/Desktop/appName/appName/functions/node_modules/grpc/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR!堆栈在ChildProcess.emit(events.js:210:5)
node-pre-gyp ERR!堆放在mayryClose(internal / child_process.js:1021:16)
node-pre-gyp ERR!堆栈位于Process.ChildProcess._handle.onexit(internal / child_process.js:283:5)
node-pre-gyp ERR!系统达尔文18.7.0
node-pre-gyp ERR!命令“ / usr / local / bin / node”“ /Users/me/Desktop/appName/appName/functions/node_modules/grpc/node_modules/.bin/node-pre-gyp”“安装”“ --fallback-to-构建“” --library = static_library“
node-pre-gyp ERR! cwd / Users / me / Desktop / appName / appName / functions / node_modules / grpc
node-pre-gyp ERR!节点-v v12.13.1
node-pre-gyp ERR! node-pre-gyp -v v0.12.0
node-pre-gyp ERR!不好
无法执行'/ usr / local / bin / node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library = static_library --module = /用户/我/桌面/appName/appName/functions/node_modules/grpc/src/node/extension_binary/node-v72-darwin-x64-unknown/grpc_node.node --module_name = grpc_node --module_path = /用户/我/桌面/ appName / appName /功能/ node_modules / grpc / src / node / extension_binary / node-v72-darwin-x64-unknown --napi_version = 5 --node_abi_napi = napi --napi_build_version = 0- node_napi_label = node-v72'(1)
npm错误!代码ELIFECYCLE
npm错误! errno 1
npm错误! grpc@1.20.0安装:node-pre-gyp install --fallback-to-build --library = static_library
npm错误!退出状态1
npm错误!在grpc@1.20.0安装脚本上失败。
答案 0 :(得分:1)
该日志中的问题是您正在安装不支持节点12的grpc
版本1.20.0。您需要删除依赖于grpc
的任何库,或使用更新的版本的grpc
,或使用旧版的Node。
答案 1 :(得分:0)
您要尝试执行的操作都可以通过firebase-admin完成。不要使用其他Firebase Web客户端库,因为它们不是用于节点的。只需删除除firebase-admin和firebase-functions之外的所有其他firebase依赖项即可开始使用
。答案 2 :(得分:0)
首先,您需要确保删除所有有冲突的npm版本
sudo apt-get autoremove
第二次使用以下命令安装最新的npm
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
然后
sudo apt-get install -y nodejs
用于Debian发行版,对于另一个OS,请检查以下链接: https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions-enterprise-linux-fedora-and-snap-packages
或者,您也可以使用
sudo npm install -g npm @ latest
或特别是对于8.13.0版
sudo npm install -g npm@8.13.0