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

输出信息结尾出现这个说明构建通过了:

补充

  1. 如果解决这个报错后你的项目仍然无法运行,尝试开启 Terminal 的网络代理或者全局代理重新安装依赖。可能有依赖需要从特定 URL 下载内容导致的,此时即使设置了 NPM 国内镜像源不奏效的。
  2. 如果你在安装 node-gyp 等类似 NPM 包,它们在安装时依赖 Visual C++ compilers and libraries、Python 等系统环境自动执行 NPM Scripts 构建需要的内容。此时如果你的系统缺少这些环境也会导致安装失败,你可以去查看 NPM 包对应的安装要求(www.npmjs.com、Github)。由于需要安装的内容较多和复杂,最快的解决方式是卸载所有 node 版本,卸载所有 node 包管理器,比如 nvm、fnm,重新通过 node installer 安装 node,在安装前,仍然建议打开网络代理,并且在安装步骤中勾选:

参考资料

posted @ 2024-02-25 19:32  guangzan  阅读(215)  评论(0编辑  收藏  举报