Linux环境使用clasp登录时提示grpc_node.node缺失如何解决?
解决clasp login时gRPC二进制模块缺失的问题
嘿,我之前折腾clasp的时候也踩过这个gRPC的坑,试了好几个方法才搞定,给你分享几个亲测有效的解决方案:
彻底清理并重建gRPC模块
有时候直接跑npm rebuild可能因为旧模块残留没生效,试试先卸载全局的gRPC,再重装并强制重建:npm uninstall -g grpc npm install -g grpc npm rebuild grpc --force如果还是不行,可以进入clasp的安装目录(就是报错里的
/usr/lib/node_modules/@google/clasp),在这个目录下执行npm rebuild grpc,针对性修复该目录下的模块。切换到兼容的Node.js版本
错误里的node-v57对应Node.js 8.x版本,这个版本太老,和新版clasp的gRPC依赖兼容性很差。建议用nvm切换到更稳定的版本(比如Node.js 14或16,clasp对这两个版本支持很好):# 安装nvm(如果没装的话) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 安装并使用Node.js 16 nvm install 16 nvm use 16 # 重新安装clasp npm uninstall -g @google/clasp npm install -g @google/clasp切换版本后再试
clasp login,大概率能解决版本不兼容的问题。改用gRPC纯JavaScript版本
如果系统环境编译二进制模块有困难,可以强制让gRPC使用纯JS版本,绕开二进制编译问题:# Linux/Mac下设置环境变量 export GRPC_NODE_NO_BINARY=true # Windows命令行下 set GRPC_NODE_NO_BINARY=true设置完后直接执行
clasp login,这个方法在一些受限环境里特别好用。安装系统编译依赖
Linux下编译gRPC二进制模块需要基础的编译工具和依赖库,如果你是Debian/Ubuntu系统,先安装这些依赖:sudo apt-get update sudo apt-get install build-essential libc6-devCentOS/RHEL系统的话:
sudo yum groupinstall "Development Tools" sudo yum install glibc-devel安装完依赖后再重新安装clasp并执行
npm rebuild。
内容的提问来源于stack exchange,提问作者phambaonam
相关产品推荐
相关产品推荐

