canirequire

canirequireDual (CommonJS + ESM) › koa

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

Koa web app framework

Last verified Sep 9, 2026 against koa@3.2.1. JSON

Dual (CommonJS + ESM) Dual package — both require() and import work

koa publishes both a CommonJS entry and a native ESM entry (ESM added in 2.13.0). require("koa") and import "koa" both work on every supported Node.js version and in Bun.

Latest
3.2.1 (May 21, 2026)
Module format
Dual (CommonJS + ESM)
Last CommonJS version
3.2.1
Native ESM since
2.13.0
TypeScript types
@types/koa
Node engines
>= 18
Weekly downloads
6.8M
License
MIT

Does koa@3.2.1 actually load? Runtime test results

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

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

ES modules (import)

import koa from "koa";

CommonJS (require)

const koa = require("koa");

Module format by version

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

VersionsFormatFirst published
2.13.0 – 3.2.1Dual (CommonJS + ESM)Jun 21, 2020
1.2.5 – 2.12.1CommonJSFeb 11, 2017

Frequently asked

Is koa ESM-only?

koa@3.2.1 ships CommonJS and ESM builds. koa publishes both a CommonJS entry and a native ESM entry (ESM added in 2.13.0). require("koa") and import "koa" both work on every supported Node.js version and in Bun.

Can I require koa?

Yes. koa ships a CommonJS entry, so require("koa") works on every Node.js version, alongside the native ESM entry for import.

Does koa work in Bun?

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

Does koa ship TypeScript types?

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

Links

Other dual (commonjs + esm) packages

Similar popularity