【问题标题】:How to use puppeteer in my website with a cdn如何通过 CDN 在我的网站中使用 puppeteer
【发布时间】:2018-11-26 07:50:31
【问题描述】:

我正在尝试使用 Puppeteer 直接在我的网站上生成 PDF 文件。

我的问题是我不知道如何将所需的文件添加到我的网站。

所有指南都附有这行:

const puppeteer = require('puppeteer');

但是当我运行代码时,我得到了这个错误:require is not defined

这是我试图运行的代码:

const puppeteer = require('puppeteer');

puppeteer.launch().then(async browser => {
  const page = await browser.newPage();
  await page.goto('https://www.google.com');
    await page.pdf({
    scale: 1,
    displayHeaderFooter: false,
    printBackground: true,
    landscape: false,
    path: 'hn.pdf',
    format: 'A4',
    width: 1200,
    height: 3500,
    margin: {
    top: 0,
    right: 0,
    left: 0,
    bottom: 0 
  }
  });
  await browser.close();
});

通常当我想使用一些在线库时,它带有一个 cdn 链接,或者您可以下载 .js 文件并将它们托管在我的网站中,然后我可以随意使用代码。

但在这种情况下,我搜索了各种方式(大约 2.5 小时),但我找不到任何东西。

在谷歌 Puppeteer CDN 上搜索我得到了这个:https://www.jsdelivr.com/package/npm/puppeteer

但不知道如何使用.. 谢谢!

编辑:

经过一些尝试,我按照 Browserify 指南创建了一个 .js 文件。 我添加了这段代码:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
})();

并创建了该代码的捆绑包,生成了以下 js 脚本:https://puu.sh/AGF4U/46204f1b5c.js

将脚本添加到我的网站并现在尝试执行此代码:

(async () => {
  await page.goto('https://google.com', {waitUntil: 'networkidle2'});
  await page.pdf({path: 'hn.pdf', format: 'A4'});
  await browser.close();
})();

现在我在控制台上收到以下错误: https://puu.sh/AGF6I/149fb9ec2b.png

谢谢!

【问题讨论】:

    标签: javascript node.js browser pdf-generation puppeteer


    【解决方案1】:

    您必须将Webpack 之类的工具与Babel 结合使用,这将创建一个包含所需模块的包,并为浏览器编译您的代码。

    编辑:由于 Webpack 很难设置,请考虑使用 Babelify。

    【讨论】:

    • 知道如何使用它们吗?我如何使用这些工具创建一个捆绑包? (从未使用过)谢谢!
    • 更新了我的答案,Babelify 的链接包括如何使用它的教程。
    • 谢谢,我正在使用以下方式下载 Babelify: npm install --save-dev babelify@next @babel/core 下载后我必须在某处编辑器上复制代码?谢谢!
    • 查看scotch.io/tutorials/getting-started-with-browserify,它应该可以帮助您入门。
    • 您好,感谢您发布指南链接。我能够使用 .js 文件生成捆绑文件。我应该在源 .js 文件上使用整个代码吗?从我的网站我应该如何运行代码?谢谢!
    【解决方案2】:

    puppeteer 是一个node.js 库,它不能在浏览器、网页上运行。将其视为需要在计算机/服务器上运行的程序。

    要使用它,需要先install node.js,然后install puppeteer,然后使用制作屏幕截图的程序创建一个脚本文件,最后从命令提示符运行它,例如

    >node /path/to/script.js
    

    【讨论】:

      猜你喜欢
      • 2019-06-10
      • 2020-10-07
      • 2014-06-08
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      • 2011-10-16
      • 1970-01-01
      相关资源
      最近更新 更多