在安装React的Firebase时出现了Grpc错误。
在安装React的Firebase时出现了Grpc错误。
我已经试了两天来解决这个错误。我遇到错误的步骤如下:\n
- \n
- 创建一个名为appname的create-react-app项目
- 进入appname目录
- 运行npm install firebase --save(然后这一部分安装失败了)
\n
\n
\n
\n以下是我尝试过的主要修复方法:\n
- \n
- 安装了最新版本的Python 3并将其添加到Windows的环境变量中。
- 手动下载grpc并将其添加到项目中。
- 更新Node到v10+。
\n
\n
\n
\n我还尝试了其他一些不值得一提的小事情,但是没有任何改变。它们都没有起作用。我在多个干净的React应用中尝试过,所以React也不是问题所在。\n
C:\Users\Future\Desktop\react-turbo>npm i firebase --save > grpc@1.10.1 install C:\Users\Future\Desktop\react-turbo\node_modules\grpc > node-pre-gyp install --fallback-to-build --library=static_library node-pre-gyp ERR! Tried to download(403): https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v64-win32-x64-unknown.tar.gz node-pre-gyp ERR! Pre-built binaries not found for grpc@1.10.1 and node@10.0.0 (node-v64 ABI, unknown) (falling back to source compile with node-gyp) gyp ERR! configure error gyp ERR! stack Error: Can't find Python executable "C:\Users\Future\AppData\Local\Programs\Python\Python36-32\python.EXE", you can set the PYTHON env variable. gyp ERR! stack at PythonFinder.failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:483:19) gyp ERR! stack at PythonFinder.(C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:508:16) gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29 gyp ERR! stack at FSReqWrap.oncomplete (fs.js:149:21) gyp ERR! System Windows_NT 10.0.16299 gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--library=static_library" "--module=C:\\Users\\Future\\Desktop\\react-turbo\\node_modules\\grpc\\src\\node\\extension_binary\\node-v64-win32-x64-unknown\\grpc_node.node" "--module_name=grpc_node" "--module_path=C:\\Users\\Future\\Desktop\\react-turbo\\node_modules\\grpc\\src\\node\\extension_binary\\node-v64-win32-x64-unknown" gyp ERR! cwd C:\Users\Future\Desktop\react-turbo\node_modules\grpc gyp ERR! node -v v10.0.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:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --library=static_library --module=C:\Users\Future\Desktop\react-turbo\node_modules\grpc\src\node\extension_binary\node-v64-win32-x64-unknown\grpc_node.node --module_name=grpc_node --module_path=C:\Users\Future\Desktop\react-turbo\node_modules\grpc\src\node\extension_binary\node-v64-win32-x64-unknown' (1) node-pre-gyp ERR! stack at ChildProcess. (C:\Users\Future\Desktop\react-turbo\node_modules\grpc\node_modules\node-pre-gyp\lib\util\compile.js:83:29) node-pre-gyp ERR! stack at ChildProcess.emit (events.js:182:13) node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:947:16) node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:236:5) node-pre-gyp ERR! System Windows_NT 10.0.16299 node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Future\\Desktop\\react-turbo\\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\Future\Desktop\react-turbo\node_modules\grpc node-pre-gyp ERR! node -v v10.0.0 node-pre-gyp ERR! node-pre-gyp -v v0.7.0 node-pre-gyp ERR! not ok Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --library=static_library --module=C:\Users\Future\Desktop\react-turbo\node_modules\grpc\src\node\extension_binary\node-v64-win32-x64-unknown\grpc_node.node --module_name=grpc_node --module_path=C:\Users\Future\Desktop\react-turbo\node_modules\grpc\src\node\extension_binary\node-v64-win32-x64-unknown' (1) npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.3 (node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! grpc@1.10.1 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.10.1 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\Future\AppData\Roaming\npm-cache\_logs\2018-05-07T15_01_00_277Z-debug.log
在安装Firebase for React时出现Grpc错误的原因可能是以下几点:
1. 使用了不受所有库良好支持的最新版本的node。建议使用稳定版本v8.11。
解决方法:
- 安装v8.11稳定版本的node。
2. 如果是Windows 10系统,尝试禁用防病毒软件,然后再次尝试安装。如果是Linux系统,在命令前加上sudo。
解决方法:
- 禁用防病毒软件,再次尝试安装。
- 在命令前加上sudo。
3. 可能还与以下问题相关:unable to install firebase tools cli using windows 10,Error with npm install - a pre-gyp error。
解决方法:
- 参考相关链接中的解决方案。
附加信息:
- 参考以下链接学习Firebase的相关知识:https://medium.com/quick-code/how-to-integrate-react-redux-and-firebase-in-3-simple-steps-c44804a6af38,https://www.codementor.io/yurio/all-you-need-is-react-firebase-4v7g9p4kf
- 问题可能与Node版本有关,因为我只安装了v10+的版本,或者与Windows标准防病毒软件有关,也可能两者都有关。禁用了防病毒软件并安装了Node LTS v8.11后问题解决。
更新信息:
- 我目前使用的是node v.10,运行正常,似乎是v.11+版本存在问题。