canirequire

canirequireESM-only › @ungap/structured-clone

Is @ungap/structured-clone ESM-only? Can you require() it?

A structuredClone polyfill

Last verified Sep 9, 2026 against @ungap/structured-clone@1.4.0. JSON

ESM-only ESM-only — it has never shipped a CommonJS build

@ungap/structured-clone has been ESM-only since its first stable release. There is no version you can require() on Node.js 18 or older.

On Node.js 20.19+, 22.12+ and every newer release, require("@ungap/structured-clone") works anyway: Node can load synchronous ES modules through require(). Verified on Node 20, 22, 24, 26. Node.js 18 and older still fail with ERR_REQUIRE_ESM.

Latest
1.4.0 (Aug 27, 2026)
Module format
ESM-only
Last CommonJS version
none
ESM-only since
0.0.0 (Oct 29, 2021)
TypeScript types
@types/ungap__structured-clone
Node engines
not declared
License
ISC

Does @ungap/structured-clone@1.4.0 actually load? Runtime test results

Installed and executed on Sep 9, 2026 with require("@ungap/structured-clone") from a CommonJS file and import "@ungap/structured-clone" from an ES module.

Runtimerequire("@ungap/structured-clone")import "@ungap/structured-clone"
Node.js 18✓ works✓ works
Node.js 20✓ works✓ works
Node.js 22✓ works✓ works
Node.js 24✓ works✓ works
Node.js 26✓ works✓ works
Bun 1.4✓ works✓ works

How to import @ungap/structured-clone

ES modules (import)

import structuredClone from "@ungap/structured-clone";

CommonJS (require)

// Node.js 20.19+ / 22.12+ / newer (package has no top-level await):
const structuredClone = require("@ungap/structured-clone");

// Any Node.js version:
const structuredClone = await import("@ungap/structured-clone");

Module format by version

Derived from the type, main and exports fields of every stable release on npm (27 versions; the newest 27 shown).

VersionsFormatFirst published
0.0.0 – 1.4.0ESM-onlyOct 29, 2021

Frequently asked

Is @ungap/structured-clone ESM-only?

@ungap/structured-clone@1.4.0 is ESM-only. @ungap/structured-clone has been ESM-only since its first stable release. There is no version you can require() on Node.js 18 or older.

Which version of @ungap/structured-clone still supports CommonJS / require()?

None. @ungap/structured-clone has always been ESM-only. Use import, or await import("@ungap/structured-clone") from CommonJS.

How do I use @ungap/structured-clone from a CommonJS file?

Use a dynamic import: const mod = await import("@ungap/structured-clone"). On Node.js 20.19+, 22.12+ and newer, a plain require("@ungap/structured-clone") also works for ESM packages that do not use top-level await.

Does @ungap/structured-clone work in Bun?

Yes. import "@ungap/structured-clone" loaded successfully in Bun 1.4 on Sep 9, 2026.

Does @ungap/structured-clone ship TypeScript types?

Not bundled. Install the community types with "npm install -D @types/ungap__structured-clone".

Links

Other esm-only packages

Similar popularity