
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 jestlatest如果 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),仅供参考