如何解决Node.js Puppeteer的Cannot find module 'puppeteer'错误
解决Puppeteer模块找不到的问题
以下是针对Cannot find module 'puppeteer'错误的排查和解决步骤:
1. 确认Puppeteer安装在当前项目目录
- 确保你是在代码所在的项目根目录执行的安装命令,而非全局或其他目录。
- 运行
npm list puppeteer查看本地依赖列表,若没有结果,重新在项目根目录执行:
用Yarn的话执行:npm install puppeteeryarn add puppeteer
2. 验证Node.js模块查找路径
- Node.js会从当前文件目录的
node_modules文件夹加载模块,确保你的代码文件和项目的node_modules处于同一层级。 - 可在代码开头添加一行打印,确认模块搜索路径是否包含项目的
node_modules:console.log(module.paths);
3. 清理缓存并重新安装依赖
- 缓存损坏可能导致安装不完整,执行以下命令重置依赖:
Windows环境替换为:npm cache clean --force rm -rf node_modules package-lock.json npm installnpm 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语法即可。
额外代码提示
你的代码存在两个小问题,修复后才能正常运行:
automationConfiguration对象末尾缺少分号:const automationConfiguration = { headless: false };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
相关产品推荐
相关产品推荐

