alixaxel / chrome-aws-lambda

Chromium Binary for AWS Lambda and Google Cloud Functions
MIT License
3.17k stars 289 forks source link

[BUG] Cannot find module ...node_modules/puppeteer-core/lib/cjs/puppeteer/common/Browser' #293

Open hobik opened 1 year ago

hobik commented 1 year ago

Hello I'm trying to use puppeter with chrome-aws-lambda on Glitch.

Firstly I add this line in package.json file.

 "engines": {
    "node": "16.x"
  },
  "dependencies": {
    "chrome-aws-lambda": "^10.1.0",
    "dotenv": "^16.0.3",
    "nodemon": "^2.0.22",
    "puppeteer": "^20.1.2",
    "puppeteer-core": "^20.2.0",
    "request": "^2.88.2"
  }

I install these packages with npm install.

I have these source codes:

try{
const browser = await chromium.puppeteer.launch({
    args: [...chromium.args, "--hide-scrollbars", "--disable-web-security"],
    defaultViewport: chromium.defaultViewport,
    executablePath: await chromium.executablePath,
    headless: true,
    ignoreHTTPSErrors: true,
  })
      const page = await browser.newPage();
} catch (e) {
      console.log("ERROR =>", e);
    }

When I run this code I get this error:

ERROR => Error: Cannot find module '/rbd/pnpm-volume/eb105cb7-194c-4b68-b434-9102fa0ffea3/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Browser'
    at createEsmNotFoundErr (node:internal/modules/cjs/loader:960:15)
    at finalizeEsmResolution (node:internal/modules/cjs/loader:953:15)
    at resolveExports (node:internal/modules/cjs/loader:482:14)
    at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/rbd/pnpm-volume/eb105cb7-194c-4b68-b434-9102fa0ffea3/node_modules/chrome-aws-lambda/build/puppeteer/lib/Browser.js:8:13)
    at Module._compile (node:internal/modules/cjs/loader:1103:14) {
  code: 'MODULE_NOT_FOUND',
  path: '/rbd/pnpm-volume/eb105cb7-194c-4b68-b434-9102fa0ffea3/node_modules/puppeteer-core/package.json'

How can I solve this problem ?

HakimBoulestin commented 1 year ago

I would suggest moving to another library as this library does not seem to be supported anymore: https://pptr.dev/chromium-support https://www.npmjs.com/package/@sparticuz/chromium?activeTab=versions

Lissy93 commented 11 months ago

You can fix this by using the puppeteer directly, so in your code just update it like so:

- const browser = await chromium.puppeteer.launch({
+ const browser = await puppeteer.launch({

And don't forget to import puppeteer from puppeteer-core ;)