
log( "CHILD: url received from parent process", url) Ĭonst browser = await puppeteer. npm install -save puppeteer npm install -save-dev types/puppeteer Type definition file is put in nodemodules/types/puppeteer/index.d.ts. The code snippet below is a simple example of running parallel downloads with Puppeteer.Ĭonst downloadPath = path. What we need to do to use Puppeteer in TypeScript are 1) Install Puppeteer and Puppeteer type definitin, 2) Include type definition file into tsconfig.json. 💡 If you are not familiar with how child process work in Node I highly encourage you to give this article a read. We can combine the child process module with our Puppeteer script and download files in parallel. Child process is how Node.js handles parallel programming. We can fork multiple child_proces in Node. Our CPU cores can run multiple processes at the same time. 💡 Learn more about the single threaded architecture of node here Therefore if we have to download 10 files each 1 gigabyte in size and each requiring about 3 mins to download then with a single process we will have to wait for 10 x 3 = 30 minutes for the task to finish. This means you no longer need to install types/puppeteer. typescript: Puppeteer now ships with built-in TypeScript definitions. It can only execute one process at a time. chromium: The built-in aria/ selector query handler doesn’t return ignored elements anymore. You see Node.js in its core is a single-threaded system. However, if you have to download multiple large files things start to get complicated.

In this next part, we will dive deep into some of the advanced concepts.
