我写了一个node接口用于抓取公司周报网页,生成pdf和jpg提供给下载页面进行下载,于是用到了pupeteer这个包。
本地调试时非常完美,于是愉快的部署到服务器上,然而每次请求的时候,都直接报错Failed to launch chrome。
系统信息

Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 4.4.0-206-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Welcome to aliyun Elastic Compute Service!

首先添加以下配置,解决服务器没有界面时的报错
const browser = await puppeteer.launch({
          args: ['--no-sandbox', '--disable-setuid-sandbox'],
          headless: true
        });
原来是chrome的一些依赖没有安装,运行下面的代码完美解决
sudo apt install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐