You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Node.js Puppeteer的Cannot find module 'puppeteer'错误

解决Puppeteer模块找不到的问题

以下是针对Cannot find module 'puppeteer'错误的排查和解决步骤:

1. 确认Puppeteer安装在当前项目目录

  • 确保你是在代码所在的项目根目录执行的安装命令,而非全局或其他目录。
  • 运行npm list puppeteer查看本地依赖列表,若没有结果,重新在项目根目录执行:
    npm install puppeteer
    
    用Yarn的话执行:
    yarn add puppeteer
    

2. 验证Node.js模块查找路径

  • Node.js会从当前文件目录的node_modules文件夹加载模块,确保你的代码文件和项目的node_modules处于同一层级。
  • 可在代码开头添加一行打印,确认模块搜索路径是否包含项目的node_modules:
    console.log(module.paths);
    

3. 清理缓存并重新安装依赖

  • 缓存损坏可能导致安装不完整,执行以下命令重置依赖:
    npm cache clean --force
    rm -rf node_modules package-lock.json
    npm install
    
    Windows环境替换为:
    npm cache clean --force
    rd /s /q node_modules package-lock.json
    npm install
    

4. 检查版本兼容性

  • Puppeteer对Node.js版本有要求(如最新版需要Node.js 16+),若你的Node版本过低,可升级Node.js,或安装适配旧版本的Puppeteer:
    npm install puppeteer@19.11.1  # 适配Node.js 14及以上版本
    

5. 确认导入方式与模块系统匹配

  • 若项目package.json中设置了"type": "module",需使用ES模块导入语法:
    import puppeteer from 'puppeteer';
    
  • 若未设置"type": "module",则保持CommonJS的require语法即可。

额外代码提示

你的代码存在两个小问题,修复后才能正常运行:

  1. automationConfiguration对象末尾缺少分号:
    const automationConfiguration = {
        headless: false
    };
    
  2. await navigationPromise放在page.goto之前会导致程序挂起,因为还未触发导航操作,应调整为:
    await page.goto('https://www.google.com/search?q=perfmatters+vs+wp+rocket&oq=perf&aqs=chrome.0.69i59j69i57j0i67j46i433i512j0i433i512l2j0i131i433i512j69i64.961j0j15&sourceid=chrome&ie=UTF-8')
    await navigationPromise; // 在goto之后等待导航完成
    

内容的提问来源于stack exchange,提问作者Parvinder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:31:11