Question

Is it possible to use Puppeteer or any librarie with headless browser in functions?

I’m making a SPA Crawler and I need to use a headless browser as a puppeteer. I like the Functions solution and want to use this but I don’t know if it’s possible


Submit an answer
Answer a question...

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Matt Welke
DigitalOcean Employee
DigitalOcean Employee badge
February 14, 2023

You can include any NPM package from npmjs.com you want when deploying a Node.js function by including a package.json file. In it, you’d list your dependencies under dependencies like you would for any Node.js application. And, you’d arrange your function’s code so that your function directory in your project is a module (use exports.main = <your function>). See https://docs.digitalocean.com/products/functions/how-to/structure-projects/ in our docs for an example on arranging your project.

Your function directory’s contents must be within the 48 MB limit after your code and your dependencies are compressed. You’ll get an error at deploy time if you go over this limit.

We have a docs update coming soon that shows more examples of including NPM packages in Node.js functions, so keep an eye out for that.

Note that some NPM packages will require system libraries to be installed. Puppeteer is an example of this. Right now, we don’t include system libraries and CLI tools required by some NPM packages in our Node.js runtimes. We have plans to address this long term. We are always open to feedback about Functions and our other products, and you can provide it using our official feedback platform at https://ideas.digitalocean.com/.