Recommended Free Tools
To debug browser code with source maps in Puppeteer, make your build produce a usable source map, launch Puppeteer with DevTools enabled, and let Chrome DevTools load the map. Puppeteer has no source-map switch: it controls the browser, while your compiler or bundler creates the map and DevTools uses it to show authored files. Node.js automation code is a separate debugging target and needs the Node inspector.
First, identify which code you need to debug
A Puppeteer session involves two execution contexts. Browser or client code runs on the page; Node.js or server code runs in your automation script. Puppeteer’s debugging guide draws this distinction explicitly, and a map loaded by Chrome DevTools for the page does not by itself remap Node.js stack traces: Puppeteer debugging guide.
| Target | Where it runs | Where to pause | Mapping mechanism |
|---|---|---|---|
| Page code, such as JavaScript compiled from TypeScript | In the browser page | Chrome DevTools Sources, or a debugger statement executed in the page |
Client-side source map loaded by DevTools |
| Puppeteer automation script | In Node.js | Node inspector attached to the script | Node-side source-map support if original-file stack traces are needed |
Debug browser-side code with Puppeteer
1. Make the build emit a usable source map
Configure the project’s compiler, bundler, or minifier to generate a source map. TypeScript, Babel, Terser, Webpack, Vite, esbuild, and Parcel are among the tools Chrome lists as common map producers. The exact setting depends on your build tool and project configuration; there is no universal Puppeteer setting for this.
- Keep the generated JavaScript and its map paired.
- Make sure the generated file’s
sourceMappingURLpoints to a map that the browser or DevTools can retrieve. - For a local debugging build, verify that the map’s original-source paths resolve as intended.
- If you do not want to publish source maps with a production deployment, use a local debugging build or DevTools’ manual map workflow rather than assuming public deployment is required.
Chrome’s source-map documentation explains how DevTools presents authored code while the browser executes processed JavaScript: Chrome DevTools: JavaScript source maps.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
2. Launch the page with DevTools and pause in the page context
Install Puppeteer in your project if it is not already installed, then save this as a Node.js script and run it. Replace the URL with your local page. The debugger statement must execute inside page code; placing it in a page.evaluate() callback pauses the browser-side execution.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ devtools: true });
const page = await browser.newPage();
page.on('console', msg => console.log('PAGE LOG:', msg.text()));
await page.goto('http://localhost:3000');
await page.evaluate(() => {
debugger;
// Replace with browser-side code you need to inspect.
document.querySelector('body');
});
})();
With DevTools open, use the Sources panel to find the authored file and set a breakpoint there. Once the map loads, DevTools maps the debugging location to the generated code the browser actually runs. The console listener is optional; it forwards page console.* messages to the Node terminal, where they do not appear automatically.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
3. Check whether DevTools loaded the map
- In DevTools, open Settings > Preferences > Sources and enable JavaScript source maps.
- Open More tools > Developer Resources.
- Check the map’s Status and Error columns. DevTools normally attempts to load maps when it opens.
- Return to Sources, open the authored file, and place a breakpoint on the relevant line.
If the map request fails across origins, try Load through website in Developer Resources. If that does not work, host the map locally, open the processed file in Sources, right-click it, choose Add source map, enter the map URL, and check whether the authored file appears in the file tree. Chrome notes that DevTools’ own request for a map can run into cross-origin handling; these labels reflect the documented workflow and may vary if DevTools’ UI changes.
Debug the Node.js Puppeteer script separately
If the breakpoint belongs to your automation script—for example, the line before an awaited page.click()—attach a Node inspector. This is not the same as pausing browser code in page.evaluate().
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsRank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
- Set
headless: falsein your launch options. - Put a
debugger;statement in the Node.js script where you want execution to pause. - Start the script with
node --inspect-brk path/to/script.js. - Open
chrome://inspect/#devicesin Chrome or Chromium, select the inspected target, and resume with F8.
For TypeScript-transpiled Node programs, source-map-support documentation describes installing its handler or preloading source-map-support/register so stack traces can refer to original files. This is a Node-side option, not a requirement for Chrome DevTools to map browser code. Check its compatibility with your Node version and build setup.
Troubleshoot source maps and Puppeteer debugging
Sources shows only a bundle
- Confirm JavaScript source maps are enabled in DevTools preferences.
- Check that the map file exists and the generated JavaScript points to it through a resolvable
sourceMappingURL. - Use Developer Resources to read the map’s status and error; fix the reported URL or access issue.
The map request has a cross-origin error
Try Load through website in Developer Resources. If the request still fails, use the documented manual method: host a local map, open the generated file in Sources, right-click, choose Add source map, and supply the map URL.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
A browser breakpoint does not pause
Check that the code path actually runs and that the breakpoint or debugger statement is in the page context. A debugger inside the callback passed to page.evaluate() pauses browser execution only when that callback executes.
Node stack traces still show generated JavaScript
Chrome’s browser-side source-map view does not automatically rewrite Node.js stack traces. Configure Node-side source-map support if you need TypeScript’s original filenames and locations in those traces.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
An awaited Puppeteer call appears stuck
Inspect browser.debugInfo.pendingProtocolErrors for pending protocol errors and their stack traces. If more detail is needed, Puppeteer documents NODE_DEBUG="puppeteer:*" for protocol logs; enable it selectively because logs can contain sensitive data.
Page logs do not appear in the terminal
Forward them with page.on('console', msg => console.log('PAGE LOG:', msg.text())). Browser console messages are not automatically printed to Node’s console.
Or skip the browser setup
If what you need is a screenshot of the page rather than an interactive source-map debugging session, ScreenshotNeo can capture it with one GET request. This does not replace DevTools or map source locations; it is an option for obtaining the page image or PDF without setting up Puppeteer in your own script.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Before capture, it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan to try 1,000 screenshots a month without a card.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




