canirequire

canirequire › ESM-only › standard

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

JavaScript Standard Style

Last verified Sep 9, 2026 against standard@17.1.2. Markdown · JSON

ESM-only ESM-only since 17.0.0 — last CommonJS version is 16.0.4

standard dropped its CommonJS build in 17.0.0 (April 2022). The last version with a plain require()-able CommonJS entry is 16.0.4, published Oct 3, 2021; it declares support for Node.js >=10.12.0.

On Node.js 20.19+, 22.12+ and newer, require("standard") 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("standard") fails with ERR_REQUIRE_ESM.

What to do

  1. On Node.js 20.19+, 22.12+ and newer, require("standard") 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 standard = await import("standard"). That works on every Node.js version the package supports (^12.22.0 || ^14.17.0 || >=16.0.0).
  3. If you need a synchronous require() or run Node.js 18: npm install standard@16.0.4, the last CommonJS release (published Oct 3, 2021); it declares Node.js >=10.12.0.
  4. TypeScript: no types are available for standard; declare the module yourself if you need them.
Latest
17.1.2 (Sep 13, 2024)
Module format
ESM-only
Last CommonJS version
16.0.4
ESM-only since
17.0.0 (Apr 20, 2022)
TypeScript types
None
Node engines
^12.22.0 || ^14.17.0 || >=16.0.0
Weekly downloads
454K
License
MIT

Does standard@17.1.2 actually load? Runtime test results

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

Runtimerequire("standard")import "standard"
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 standard

ES modules (import)

import * as standard from "standard";

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 standard = require("standard");

// Any Node.js version the package supports (^12.22.0 || ^14.17.0 || >=16.0.0), from an async function:
async function main() {
  const standard = await import("standard");
}

// Or pin the last CommonJS release (declares Node.js >=10.12.0):
// npm install standard@16.0.4

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 (153 versions; the newest 60 shown).

VersionsFormatFirst published
17.0.0 – 17.1.2ESM-onlyApr 20, 2022
5.3.1 – 16.0.4CommonJSSep 18, 2015

Frequently asked

Is standard ESM-only?

standard@17.1.2 is ESM-only. standard dropped its CommonJS build in 17.0.0 (April 2022). The last version with a plain require()-able CommonJS entry is 16.0.4, published Oct 3, 2021; it declares support for Node.js >=10.12.0.

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

16.0.4 is the last version of standard with a CommonJS build; it declares Node.js >=10.12.0. Install it with "npm install standard@16.0.4". Every version from 17.0.0 on is ESM-only.

How do I use standard from a CommonJS file?

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

Does standard work in Bun?

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

Does standard ship TypeScript types?

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

Links

Other esm-only packages

Similar popularity