Save every resource a webpage needs for offline use — HTML, CSS, JavaScript, images, fonts, and more — powered by Puppeteer and the Chrome DevTools Protocol.
- Works with any website, including single-page applications (SPAs)
- Preserves the original directory structure
- Concurrent, resumable downloads with robust error handling
- Optional headless/DevTools debug mode
- Modern, strictly-typed TypeScript codebase
git clone https://github.com/minzique/resource-saver-headless.git
cd resource-saver-headless
pnpm install
pnpm build# Save all resources from a webpage to ./output
resource-saver save https://example.com ./output| Flag | Description | Default |
|---|---|---|
--timeout <ms> |
Request timeout in milliseconds | 30000 |
--parallel <num> |
Maximum concurrent downloads | 10 |
--debug |
Launch Chrome window + DevTools | false |
import { BrowserHelper } from 'resource-saver-headless';
async function save() {
const browser = new BrowserHelper({ timeout: 30000 });
await browser.init('https://example.com');
const resources = await browser.getResources();
for (const { path, content } of resources) {
// Persist to disk or process as needed
}
await browser.close();
}- Core resource extraction engine
- CLI interface
- Concurrent downloads & robust error handling
- Debug / DevTools mode
- Strict TypeScript setup
- Enhanced SPA support
- Source-map extraction for original source files
ISC License — see the LICENSE file for details.