在 Firebase 函数中找不到 Chrome (ver.######)

Could not find Chrome (ver. ######) in Firebase Function

提问人:Fahry Mohammed 提问时间:10/12/2023 最后编辑:Frank van PuffelenFahry Mohammed 更新时间:10/12/2023 访问量:60

问:

我正在尝试根据移动用户数据生成 PDF。所以我写了一个通过移动应用程序访问。在 Firebase 函数中,我用于从 HTML 生成 PDF。但是不断抛出错误. 版本和版本。所以我的代码如下,我在我的 Firebase 函数中调用以下函数:firebase functionpuppeteerpuppeteerCould not find Chrome (ver. ######)puppeteer^19.3.8node16

async function generatePDF(htmlContent: string): Promise<Buffer> {
 const browser = await puppeteer.launch({
  headless: 'new',
  args: ['--no-sandbox', '--disable-setuid-sandbox'],
 });
 functions.logger.log('browser.version()', await browser.version());

 const page = await browser.newPage();

 await page.setContent(htmlContent, {waitUntil: 'domcontentloaded'});

 const pdfBuffer = await page.pdf({format: 'A4'});

 await browser.close();

 return pdfBuffer;
}

我想设置,但后来 Firebase Function 变得很大,Firebase Function 抛出了一个错误。.puppeteerrc.cjs

为了克服这些问题,我修改了函数代码如下:

async function generatePDF(htmlContent: string): Promise<Buffer> {
   // Added this line
   await puppeteer
     .createBrowserFetcher()
     .download(puppeteer.PUPPETEER_REVISIONS.chromium);

  const browser = await puppeteer.launch({
    headless: 'new',
    args: ['--no-sandbox', '--disable-setuid-sandbox'],
  });

  functions.logger.log('browser.version()', await browser.version());

  const page = await browser.newPage();

  await page.setContent(htmlContent, {waitUntil: 'domcontentloaded'});

  const pdfBuffer = await page.pdf({format: 'A4'});

  await browser.close();

  return pdfBuffer;
}

然后开始工作,但每次都被下载并占用更多内存。更重要的是,每次执行都需要更多时间。那么Firebase功能还有其他解决方案吗?chromium

Node.js Firebase Google-Cloud-Functions Puppeteer Chromium

评论


答: 暂无答案