为 node.js 安装 firebase-admin 时 grpc 安装错误

grpc installion error while installing firebase-admin for node.js

我最近将我的 firebase-admin 依赖项从 5.5.1 更新到 5.8.2 并尝试安装新的依赖项,但是,它失败了,我无法再部署目录中的云功能。

package.json 文件是:

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase experimental:functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase-admin": "~5.8.2",
    "firebase-functions": "^0.8.1"
  },
  "private": true
}

错误日志如下:

> grpc@1.8.4 install C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc
> node-pre-gyp install --fallback-to-build --library=static_library

node-pre-gyp ERR! Tried to download(undefined): https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.8.4/node-v59-win32-x64-unknown.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for grpc@1.8.4 and node@9.4.0 (node-v59 ABI, unknown) (falling back to source compile with node-gyp)
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "C:\Program Files\Python36\", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (C:\Users\kusha\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\configure.js:483:19)
gyp ERR! stack     at PythonFinder.<anonymous> (C:\Users\kusha\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\configure.js:508:16)
gyp ERR! stack     at C:\Users\kusha\AppData\Roaming\npm\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:166:21)
gyp ERR! System Windows_NT 10.0.15063
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\kusha\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "configure" "--fallback-to-build" "--library=static_library" "--module=C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc\src\node\extension_binary\node-v59-win32-x64-unknown\grpc_node.node" "--module_name=grpc_node" "--module_path=C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc\src\node\extension_binary\node-v59-win32-x64-unknown"
gyp ERR! cwd C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc
gyp ERR! node -v v9.4.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Users\kusha\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --library=static_library --module=C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc\src\node\extension_binary\node-v59-win32-x64-unknown\grpc_node.node --module_name=grpc_node --module_path=C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc\src\node\extension_binary\node-v59-win32-x64-unknown' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc\node_modules\node-pre-gyp\lib\util\compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:160:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:943:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)
node-pre-gyp ERR! System Windows_NT 10.0.15063
node-pre-gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc\node_modules\node-pre-gyp\bin\node-pre-gyp" "install" "--fallback-to-build" "--library=static_library"
node-pre-gyp ERR! cwd C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc
node-pre-gyp ERR! node -v v9.4.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.39
node-pre-gyp ERR! not ok
Failed to execute 'C:\Program Files\nodejs\node.exe C:\Users\kusha\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --library=static_library --module=C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc\src\node\extension_binary\node-v59-win32-x64-unknown\grpc_node.node --module_name=grpc_node --module_path=C:\Users\kusha\FirebaseWaitlistFunctions\functions\node_modules\grpc\src\node\extension_binary\node-v59-win32-x64-unknown' (1)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! grpc@1.8.4 install: `node-pre-gyp install --fallback-to-build --library=static_library`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the grpc@1.8.4 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\kusha\AppData\Roaming\npm-cache\_logs18-01-31T18_47_14_943Z-debug.log

我的 windows 版本是 10.0.15063

显示的 python 错误似乎很愚蠢,因为我安装了 python 并设置了 PYTHON 变量,并将其放在路径变量中。 运行 来自 cmd 中任何地方的 python 命令确实让我进入了 python 控制台部分。

我尝试将 firebase 工具更新到最新版本 3.17.4,但在那里收到了相同的警告,但它说那里的依赖项是可选的。

我将 Node.js 更新到我在官方网站上找到的最新版本 9.4.0。 使用 npm install -g npm

将 npm 更新到 5.6.0

很遗憾,我不是 Node.js 开发人员,这是我的第一次尝试,因为必须使用 firebase 函数。请指出正确的方向,因为我不知道如何解决这个问题。我的功能代码没有问题,因为在我尝试更新依赖项之前它工作正常。

对于查看此内容的人,在撰写本文时,我发现消除此错误的唯一解决方案是暂时禁用防病毒服务。

当我的 Kaspersky 防病毒软件是 运行 时,我看到过这种情况。 github 库中的多个人已经在多个地方提出了这个问题。 他们中的大多数人发现禁用防病毒软件可以解决问题。

解决方案适用于函数 1.0.1