环境

  • 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,在安装前,仍然建议打开网络代理,并且在安装步骤中勾选:

参考资料

gyp: binding.gyp not found的更多相关文章

  1. [Tips]Fix node.js addon build error: "gyp: binding.gyp not found"

    基于node-gyp写Node.js native addon的时候,碰到一个很恶心的问题. 调用“node-gyp configure”能成功,再调用“node-gyp”时总会报错,最后发现时系统时 ...

  2. Node.js C++ 插件学习指南

    Node.js插件(addons) Node.js 插件是用 C++ 编写的动态链接共享对象,可以使用 require() 函数加载到 Node.js 中,且像普通的 Node.js 模块一样被使用. ...

  3. 前端使用 node-gyp 构建 Native Addon

    前端轮子千千万, 但还是有些瓶颈, 公司需要在前端调用自有 tcp 协议, 该协议只有 c++ 的封装版本. 领导希望可以直接调该模块, 不要重复造轮子. 实话说我对 C 还有点印象, 毕竟也是有二级 ...

  4. [转]Converting a C library to gyp

    Source:http://n8.io/converting-a-c-library-to-gyp/ Converting a C library to gyp Published: 2012.10. ...

  5. node gyp的问题

    解决 binding.gyp not found (xxx/xxx/xxx) while trying to load binding.gyp 问题 在使用ccap图形验证码模块时遇到这个问题 Err ...

  6. gyp编译工具

    最近用到了 node-gyp 这个工具, 是node 社区对 google gyp 编译工具的一个封装, 使用 node-gyp 工具可以用C++为node 项目编写 addon. 了解了一下 goo ...

  7. npm package.json属性详解

    概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...

  8. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  9. package.json 字段全解析

    Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头: 这个名字可能在require()方法中被 ...

  10. 为Node.js编写组件的几种方式

    本文主要备忘为Node.js编写组件的三种实现:纯js实现.v8 API实现(同步&异步).借助swig框架实现. 关键字:Node.js.C++.v8.swig.异步.回调. 简介 首先介绍 ...

随机推荐

  1. 弹性公网IP的五大核心优势解析

    在云服务架构中,弹性公网IP(EIP)已成为现代企业网络部署的核心组件.与传统固定IP相比,它通过独特的技术机制解决了动态环境下的公网访问难题.以下五大核心优势决定了其不可替代的价值: 一.动态绑定的 ...

  2. Guava中的常见集合操作用法

    本文主要介绍Guava中几种处理字符串和Map的方法,包括Joiner(连接).FluentIterable(过滤.转换集合)和Splitter(分割).本文基于Java 8进行测试,Guava 版本 ...

  3. 代码随想录第11天 | 二叉树part01

      理论基础 需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义 文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7 ...

  4. 【OSS】存放文件后,网页无法访问,控制台报错无法跨域访问

    来源 BNDong/Cnblogs-Theme-SimpleMemory/issues/403 用自己的oss(阿里云)存了dist,然后按照https://bndong.github.io/Cnbl ...

  5. CURL 命令的用法详解

    CURL(Client URL)是一个强大的命令行工具,用于通过各种网络协议与服务器进行数据传输.它支持 HTTP.HTTPS.FTP.SFTP 等多种协议,广泛应用于 API 测试.数据获取.文件传 ...

  6. Dapr Conversation 构建块

    Dapr Conversation 是 Dapr(Distributed Application Runtime)在 1.15 版本中引入的新 API(Alpha 阶段),旨在简化与大型语言模型(LL ...

  7. Centos下多种PHP拓展安装方法

    http://my.oschina.net/u/2400083/blog/518195

  8. 【闲话 No.6】 Lyndon 串与 runs 相关

    约定 有些约定可能并没有被广泛认可,但是为了行文需要还是写在这里,请您理解. 在下文中,如无特殊说明,我们用 \(n\) 表示问题规模大小,比如任何字符串的大小.所有数组下标从 \(1\) 开始. 我 ...

  9. Spread Ribbon 工具栏控件:在WinForms中高效编辑Spread工作簿

    引言 在数据密集型应用中,电子表格功能是提升用户体验的关键要素.GrapeCity Spread.NET V17 推出的独立 Ribbon工具栏控件,为WinForms开发者提供了与Excel高度一致 ...

  10. MongoDB入门实战教程(2)

    上一篇我们了解了MongoDB的基本概念与单节点环境搭建,本篇我们来学习如何搭建一个高可用的复制集集群. 1 关于MongoDB复制集 MongoDB复制集的主要意义在于实现服务的高可用,它是Mong ...