canirequire

canirequireESM-only › lerna

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

Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository

Last verified Sep 9, 2026 against lerna@10.0.1. JSON

ESM-only ESM-only since 10.0.0 — last CommonJS version is 9.0.7

lerna dropped its CommonJS build in 10.0.0 (July 2026). The last version you can require() on every Node.js version, including 18 and older, is 9.0.7, published Mar 13, 2026.

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

lerna@10.0.1 declares engines "^22.13.0 || ^24.0.0 || ^26.0.0", so Node.js 18, 20 are outside its supported range regardless of module format.

Latest
10.0.1 (Aug 19, 2026)
Module format
ESM-only
Last CommonJS version
9.0.7
ESM-only since
10.0.0 (Jul 29, 2026)
TypeScript types
None
Node engines
^22.13.0 || ^24.0.0 || ^26.0.0
Weekly downloads
1.4M
License
MIT

Does lerna@10.0.1 actually load? Runtime test results

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

Runtimerequire("lerna")import "lerna"
Node.js 18✗ failsERR_REQUIRE_ESM✗ failsSyntaxError
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 lerna

ES modules (import)

import lerna from "lerna";

CommonJS (require)

// Node.js 20.19+ / 22.12+ / newer (package has no top-level await):
const lerna = require("lerna");

// Any Node.js version:
const lerna = await import("lerna");

// Or pin the last CommonJS release:
// npm install lerna@9.0.7

Module format by version

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

VersionsFormatFirst published
10.0.0 – 10.0.1ESM-onlyJul 29, 2026
5.5.4 – 9.0.7CommonJSSep 28, 2022

Frequently asked

Is lerna ESM-only?

lerna@10.0.1 is ESM-only. lerna dropped its CommonJS build in 10.0.0 (July 2026). The last version you can require() on every Node.js version, including 18 and older, is 9.0.7, published Mar 13, 2026.

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

9.0.7 is the last version of lerna with a CommonJS build. Install it with "npm install lerna@9.0.7". Every version from 10.0.0 on is ESM-only.

How do I use lerna from a CommonJS file?

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

Does lerna work in Bun?

Yes. import "lerna" loaded successfully in Bun 1.4 on Sep 9, 2026.

Does lerna ship TypeScript types?

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

Links

Other esm-only packages

Similar popularity