canirequire › Dual (CommonJS + ESM) › graphql
Is graphql ESM-only? Can you require() it?
A Query Language and Runtime which can target any service.
Last verified Sep 9, 2026 against graphql@17.0.2. JSON
Dual (CommonJS + ESM) Dual package — both require() and import work
graphql publishes both a CommonJS entry and a native ESM entry (ESM added in 17.0.0). require("graphql") and import "graphql" both work on every supported Node.js version and in Bun.
Does graphql@17.0.2 actually load? Runtime test results
Installed and executed on Sep 9, 2026 with require("graphql") from a CommonJS file and import "graphql" from an ES module.
| Runtime | require("graphql") | import "graphql" |
|---|---|---|
| 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 graphql
ES modules (import)
import graphql from "graphql";CommonJS (require)
const graphql = require("graphql");Module format by version
Derived from the type, main and exports fields of every stable release on npm (147 versions; the newest 60 shown).
| Versions | Format | First published |
|---|---|---|
| 17.0.0 – 17.0.2 | Dual (CommonJS + ESM) | Jun 15, 2026 |
| 14.4.0 – 16.14.2 | CommonJS | Jun 26, 2019 |
Frequently asked
Is graphql ESM-only?
graphql@17.0.2 ships CommonJS and ESM builds. graphql publishes both a CommonJS entry and a native ESM entry (ESM added in 17.0.0). require("graphql") and import "graphql" both work on every supported Node.js version and in Bun.
Can I require graphql?
Yes. graphql ships a CommonJS entry, so require("graphql") works on every Node.js version, alongside the native ESM entry for import.
Does graphql work in Bun?
Yes. import "graphql" loaded successfully in Bun 1.4 on Sep 9, 2026.
Does graphql ship TypeScript types?
Yes. graphql 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
- ts-node 10.9.2CommonJS
- lodash-es 4.18.1ESM-only
- jest 30.5.1Dual
- eslint-plugin-import 2.32.0CommonJS
- through 2.3.8CommonJS
- zod-to-json-schema 3.25.2Dual
- is-extendable 1.0.1CommonJS
- jest-changed-files 30.5.1Dual