news 2026/9/9 22:25:13

Puppeteer 报 “Cannot find module ‘puppeteer-core/internal/...‘“ 怎么处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Puppeteer 报 “Cannot find module ‘puppeteer-core/internal/...‘“ 怎么处理

Puppeteer 报 "Cannot find module 'puppeteer-core/internal/...'" 怎么处理

【免费下载链接】puppeteerJavaScript API for Chrome and Firefox项目地址: https://gitcode.com/GitHub_Trending/puppeteer1/puppeteer

在 Node.js 项目里import 'puppeteer'(或加载依赖了 Puppeteer 的脚本)时,如果抛出Cannot find module 'puppeteer-core/internal/...',说明模块解析环节出了问题。根据 docs/troubleshooting.md 中的说明,这个报错只有两类原因:Node.js 版本过低,或者项目中使用了自定义的模块解析器(custom resolver,例如jest-resolve)。下面的步骤帮你判断属于哪种情况并分别处理。

先判断是哪一类原因

两种原因的解决方式完全不同,先确认自己的环境属于哪一种。

第一步,检查 Node.js 版本:

node --version
  • 文档指出该报错会出现在 Node.js 版本低于 14 的环境中,并且 Puppeteer 明确不支持已废弃的 Node.js 版本("we do not support deprecated versions of Node.js")。
  • 另外,本仓库当前源码中 packages/puppeteer/package.json 的engines字段声明为"node": ">=22.12.0",也就是说如果你跟随仓库最新代码使用 Puppeteer,运行环境的 Node 版本要求比文档提到的 14 更高。以你实际安装/构建版本对应的要求为准。

第二步,检查是否使用了自定义模块解析器。典型场景是用 Jest 跑 Puppeteer 测试时,项目里配置了jest-resolve一类的自定义 resolver(通过 Jest 的resolver选项等)。如果你没有配置任何自定义解析器,基本可以排除这类原因。

情况一:Node.js 版本过低

如果你确认 Node 版本低于上述要求,处理方式就是升级 Node.js 到受支持的版本(不低于 14,按当前仓库源码要求则应不低于 22.12.0)。Puppeteer 不提供对废弃 Node.js 版本的支持,文档没有给出其他替代方案,因此升级运行环境是唯一路径。

升级完成后,重新安装项目依赖(Node 大版本变化后建议重装,让node_modules与新环境一致):

npm install

情况二:使用了自定义 resolver(如 jest-resolve)

如果你的 Node 版本符合要求,但项目中使用了自定义模块解析器(文档举的例子是jest-resolve),文档给出的处理方式是:升级 resolver 本身,或升级它的父模块

例如在 Jest 场景中,升级jest这类父模块通常就能解决(文档引用了 Puppeteer 官方 issue #9121 作为佐证)。也就是说:

npm install jest@latest

如果 resolver 是独立安装的包(如jest-resolve),则升级该包。文档原文表述为 "usually upgrading the resolver (or its parent module such asjest) will work",即这是通常有效的做法。

验证是否修复

修复的验证方式就是重跑之前触发报错的代码路径:

node <你的脚本.js> # 或 npx jest <你的测试文件>

判断标准只有一个:之前抛出Cannot find module 'puppeteer-core/internal/...'的那次加载/执行不再报这个错,Puppeteer 可以正常加载。如果升级后仍然报同样的错,回到第一步重新确认 Node 版本和是否存在自定义 resolver 配置。

限制说明

  • 该报错的成因文档中只列了这两类:Node.js 版本过低、使用自定义 resolver。如果两者都不符合,文档没有覆盖你的情况,建议直接向 Puppeteer 项目提交 issue,而不是继续按本文猜测。
  • Node.js 版本要求以你安装的 Puppeteer 版本对应的声明为准(本仓库当前源码声明>=22.12.0),不要仅按 troubleshooting 文档中提到的"14"来设定下限。

【免费下载链接】puppeteerJavaScript API for Chrome and Firefox项目地址: https://gitcode.com/GitHub_Trending/puppeteer1/puppeteer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 22:21:16

C++数据结构核心:从栈与队列到消息队列的工程实践

1. 从一道面试题说起&#xff1a;为什么所有 C 开发者都躲不开栈和队列我面试过不少候选人&#xff0c;也带过很多刚入行的新人&#xff0c;发现一个规律&#xff1a;凡是能把栈和队列讲清楚的人&#xff0c;写代码的思路基本都差不到哪去。凡是支支吾吾、只说得出"先进后…

作者头像 李华
网站建设 2026/9/9 22:21:14

STM32F103 HAL库驱动ILI9486 SPI触摸屏完整方案与接线配置

简介&#xff1a;这套基于STM32F103的3.5英寸ILI9486触摸屏HAL库工程&#xff0c;面向嵌入式和单片机开发者&#xff0c;解决屏幕驱动与触摸交互的快速落地问题。工程使用STM32CubeMX生成底层初始化&#xff0c;结合中景园ILI9486驱动代码&#xff0c;通过SPI接口完成显示和触摸…

作者头像 李华
网站建设 2026/9/9 22:18:17

Missile Datcom气动估算实战:从半经验公式到导弹设计应用

简介&#xff1a;这是一份用于导弹气动特性快速估算的软件工具资源&#xff0c;基于DATCOM方法&#xff0c;面向导弹设计、飞行性能分析相关工程师与学习者。压缩包内为MD_GUI_Ver_3.6.0_Portable便携版&#xff0c;共28个文件&#xff0c;包含可执行程序、数据文件&#xff08…

作者头像 李华
网站建设 2026/9/9 22:17:28

电力网格化运营指标体系与考核模型全解析

1. 电力网格化运营&#xff1a;一套指标体系解决的管理难题1.1 网格化管理为什么在电力行业火起来网格化运营这个词&#xff0c;在电力行业其实已经不算新鲜了&#xff0c;但真正把它做扎实、做出成效的&#xff0c;却远比想象中少。电网企业从过去的“按专业条线管设备”转向“…

作者头像 李华