# site-archive

> Website capture tool written in TS using Puppeteer

Latest version **3.0.0** (published 2026-06-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install site-archive
pnpm add site-archive
yarn add site-archive
bun add site-archive
```

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 3.0.0 |
| Published | 2026-06-11 |
| First published | 2022-10-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=18.0.0 |
| Dependencies | 5 |
| Unpacked size | 40.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Jesse Conner |
| Maintainers | mirite |

## Links

- npm: https://www.npmjs.com/package/site-archive
- Repository: https://github.com/mirite/site-archive
- Homepage: https://github.com/mirite/site-archive#readme
- Issues: https://github.com/mirite/site-archive/issues
- npm.io page: https://npm.io/package/site-archive

## Dependencies (5)

- [tar](https://npm.io/package/tar.md) ^7.5.16
- [jsdom](https://npm.io/package/jsdom.md) ^29.1.1
- [html-urls](https://npm.io/package/html-urls.md) ^2.4.67
- [puppeteer](https://npm.io/package/puppeteer.md) ^25.1.0
- [typescript](https://npm.io/package/typescript.md) ^6.0.3

## Recent versions

- 3.0.0 (latest) — 2026-06-11
- 2.2.4 — 2025-08-14
- 2.2.3 — 2025-03-30
- 2.2.2 — 2024-08-10
- 2.2.1 — 2024-06-22
- 2.2.0 — 2024-01-04
- 2.1.28 — 2024-01-03
- 2.1.27 — 2024-01-03
- 2.1.25 — 2023-04-22
- 2.1.24 — 2023-04-09
- 2.1.23 — 2023-04-09
- 2.1.21 — 2023-02-20
- 2.1.20 — 2023-02-20
- 2.1.19 — 2023-02-20
- 2.1.18 — 2023-02-20
- … 36 more at https://npm.io/package/site-archive/versions

## README

# Site Archive

This is a site crawler designed to track visual and content differences between crawls.

## Example usage:

```javascript
import path from "path";
import Crawler from "site-archive";

const entryPointRaw = process.argv[2];
const crawler = new Crawler(
	entryPointRaw,
	path.resolve(".", "captures"),
	1,
	console.log,
);
await crawler.crawl();
```

```shell
yarn run start https://yoursite.com
```

## Options:

Default options:

```javascript
let options = {
	ignoreHead: false, // If true skip any urls found in the <head> element.
	screenshotsOnly: false, // If true doesn't save any page HTML.
	screenshotSizes: [], // An array of {width: number, height: number} for screenshots to take.
	htmlOnly: false, // Only attempt to follow links that might be HTML documents.
	logLevel: 2, // The detail level of messages to display. (1, 2, or 3 with 1 being every single message generated).
	onEvent: (msg) => console.log(msg), // Function that handles messaging from the crawler.
	htmlTypes: [
		"html",
		"htm",
		"xhtml",
		"asp",
		"aspx",
		"shtml",
		"dhtml",
		"php",
		"php5",
		"jsp",
	], // Which file extensions (in addition to no-extension) are considered to be possible HTML links.
	ignoreQueryString: false, // If true, doesn't consider query strings to be part of a URL.
	ignoreAnchors: false, // If true, doesn't consider anchors to be part of a URL.
	selectorsToRemove: [], // An array of selectors for elements to be removed from the page before taking screenshots.
	timeout: 30000, // How long to wait for a page to finish load before timing out.
	redirect: "follow", // How to treat HTTP redirects. (https://chromestatus.com/feature/4614142321229824)
};
```

## Status:

Still very much a work in progress

---
_Source: https://npm.io/package/site-archive · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
