gyp: binding.gyp not found
环境
- win11(MacOS 虚拟机)
- node v20.11.1(fnm)
- pnpm
问题描述
前端工程安装 NPM 依赖时报错 gyp: binding.gyp not found
。
解决方式
找到上图报错信息中的 cwd 后面的路径,我这里是:
C:\Users\guangzanwang\code\puppet-xp-getting-started\node_modules\.pnpm\frida@15.2.2\node_modules\frida
在这个路径下创建文件 binding.gyp,并写入以下内容(sources 改成你的 NodeJS 路径):
{
"targets": [{
"target_name": "binding",
"sources": [ "C:/Users/guangzanwang/AppData/Roaming/fnm/node-versions/v20.11.1/installation" ]
}]
}
在这个目录下运行命令:
node-gyp rebuild
输出信息结尾出现这个说明构建通过了:
补充
- 如果解决这个报错后你的项目仍然无法运行,尝试开启 Terminal 的网络代理或者全局代理重新安装依赖。可能有依赖需要从特定 URL 下载内容导致的,此时即使设置了 NPM 国内镜像源不奏效的。
- 如果你在安装 node-gyp 等类似 NPM 包,它们在安装时依赖 Visual C++ compilers and libraries、Python 等系统环境自动执行 NPM Scripts 构建需要的内容。此时如果你的系统缺少这些环境也会导致安装失败,你可以去查看 NPM 包对应的安装要求(www.npmjs.com、Github)。由于需要安装的内容较多和复杂,最快的解决方式是卸载所有 node 版本,卸载所有 node 包管理器,比如 nvm、fnm,重新通过 node installer 安装 node,在安装前,仍然建议打开网络代理,并且在安装步骤中勾选: