canirequire › Dual (CommonJS + ESM) › codemirror
Is codemirror ESM-only? Can you require() it?
Basic configuration for the CodeMirror code editor
Last verified Sep 9, 2026 against codemirror@6.0.2. JSON
Dual (CommonJS + ESM) Dual package — both require() and import work
codemirror publishes both a CommonJS entry and a native ESM entry (ESM added in 6.0.0). require("codemirror") and import "codemirror" both work on every supported Node.js version and in Bun.
Does codemirror@6.0.2 actually load? Runtime test results
Installed and executed on Sep 9, 2026 with require("codemirror") from a CommonJS file and import "codemirror" from an ES module.
| Runtime | require("codemirror") | import "codemirror" |
|---|---|---|
| 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 codemirror
ES modules (import)
import codemirror from "codemirror";CommonJS (require)
const codemirror = require("codemirror");Module format by version
Derived from the type, main and exports fields of every stable release on npm (155 versions; the newest 60 shown).
| Versions | Format | First published |
|---|---|---|
| 6.65.7 | CommonJS | Jul 20, 2022 |
| 6.0.0 – 6.0.2 | Dual (CommonJS + ESM) | Jun 8, 2022 |
| 5.49.0 – 5.65.21 | CommonJS | Sep 20, 2019 |
Frequently asked
Is codemirror ESM-only?
codemirror@6.0.2 ships CommonJS and ESM builds. codemirror publishes both a CommonJS entry and a native ESM entry (ESM added in 6.0.0). require("codemirror") and import "codemirror" both work on every supported Node.js version and in Bun.
Can I require codemirror?
Yes. codemirror ships a CommonJS entry, so require("codemirror") works on every Node.js version, alongside the native ESM entry for import.
Does codemirror work in Bun?
Yes. import "codemirror" loaded successfully in Bun 1.4 on Sep 9, 2026.
Does codemirror ship TypeScript types?
Yes. codemirror bundles its own type declarations; no @types package is needed.
Links
Other dual (commonjs + esm) packages
- minimatch 10.2.6Dual
- brace-expansion 5.0.9Dual
- lru-cache 11.5.2Dual
- glob 13.0.6Dual
- eslint-visitor-keys 5.0.1Dual
- yallist 5.0.0Dual
- balanced-match 4.0.4Dual
- js-yaml 5.4.1Dual
Similar popularity
- ip 2.0.1CommonJS
- shelljs 0.10.0CommonJS
- eslint-plugin-n 18.3.0ESM-only
- passport 0.7.0CommonJS
- @commitlint/cli 21.2.2CommonJS
- postcss-custom-properties 15.0.1ESM-only
- identity-obj-proxy 3.0.0CommonJS
- koa 3.2.1Dual