canirequire

canirequire › ESM-only › documentation

Is documentation ESM-only? Can you require() it?

a documentation generator

Last verified Sep 9, 2026 against documentation@14.0.3. Markdown · JSON

ESM-only ESM-only since 14.0.0 — last CommonJS version is 13.2.5

documentation dropped its CommonJS build in 14.0.0 (August 2022). The last version with a plain require()-able CommonJS entry is 13.2.5, published Apr 24, 2021; it declares support for Node.js >=10.

On Node.js 20.19+, 22.12+ and newer, require("documentation") works with the latest version: Node.js loads synchronous ES modules through require(). Verified on Node.js 20, 22, 24 and 26. On Node.js 18, which has no require(esm), require("documentation") fails with ERR_REQUIRE_ESM.

What to do

  1. On Node.js 20.19+, 22.12+ and newer, require("documentation") works with the latest version: Node.js loads synchronous ES modules through require(). Verified on Node.js 20, 22, 24 and 26.
  2. From a CommonJS file, use a dynamic import inside an async function: const documentation = await import("documentation"). That works on every Node.js version the package supports (>=14).
  3. If you need a synchronous require() or run Node.js 18: npm install documentation@13.2.5, the last CommonJS release (published Apr 24, 2021); it declares Node.js >=10.
  4. TypeScript: no types are available for documentation; declare the module yourself if you need them.
Latest
14.0.3 (Jan 30, 2024)
Module format
ESM-only
Last CommonJS version
13.2.5
ESM-only since
14.0.0 (Aug 19, 2022)
TypeScript types
None
Node engines
>=14
Weekly downloads
84K
License
ISC

Does documentation@14.0.3 actually load? Runtime test results

Installed and executed on Sep 9, 2026 with require("documentation") from a CommonJS file and import "documentation" from an ES module.

Runtimerequire("documentation")import "documentation"
Node.js 18✗ failsERR_REQUIRE_ESM✓ works
Node.js 20✓ works✓ works
Node.js 22✓ works✓ works
Node.js 24✓ works✓ works
Node.js 26✓ works✓ works
Bun 1.4.0✓ works✓ works

How to import documentation

ES modules (import)

import * as documentation from "documentation";

Namespace import shown because the ESM entry may have no default export; use named imports for what it exports.

CommonJS (require)

// Node.js 20.19+, 22.12+ and newer (verified):
const documentation = require("documentation");

// Any Node.js version the package supports (>=14), from an async function:
async function main() {
  const documentation = await import("documentation");
}

// Or pin the last CommonJS release (declares Node.js >=10):
// npm install documentation@13.2.5

Module format by version

Derived from the type, main and exports fields of every stable release on npm, corrected where a runtime test of that version contradicted them (89 versions; the newest 60 shown).

VersionsFormatFirst published
14.0.0 – 14.0.3ESM-onlyAug 19, 2022
5.3.0 – 13.2.5CommonJSSep 4, 2017

Frequently asked

Is documentation ESM-only?

documentation@14.0.3 is ESM-only. documentation dropped its CommonJS build in 14.0.0 (August 2022). The last version with a plain require()-able CommonJS entry is 13.2.5, published Apr 24, 2021; it declares support for Node.js >=10.

Which version of documentation still supports CommonJS / require()?

13.2.5 is the last version of documentation with a CommonJS build; it declares Node.js >=10. Install it with "npm install documentation@13.2.5". Every version from 14.0.0 on is ESM-only.

How do I use documentation from a CommonJS file?

From a CommonJS file, use a dynamic import inside an async function: const documentation = await import("documentation"). That works on every Node.js version the package supports (>=14). On Node.js 20.19+, 22.12+ and newer, require("documentation") works with the latest version: Node.js loads synchronous ES modules through require(). Verified on Node.js 20, 22, 24 and 26. Alternatively pin documentation@13.2.5 (declares Node.js >=10).

Does documentation work in Bun?

Yes. import "documentation" loaded successfully in Bun 1.4.0 on Sep 9, 2026.

Does documentation ship TypeScript types?

No. documentation ships no type declarations and there is no @types package for it.

Links

Other esm-only packages

Similar popularity