canirequire

canirequireDual (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.

Latest
17.0.2 (Jul 3, 2026)
Module format
Dual (CommonJS + ESM)
Last CommonJS version
17.0.2
Native ESM since
17.0.0
TypeScript types
Bundled
Node engines
^22.0.0 || ^24.0.0 || ^25.0.0 || >=26.0.0
Weekly downloads
42.0M
License
MIT

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.

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

VersionsFormatFirst published
17.0.0 – 17.0.2Dual (CommonJS + ESM)Jun 15, 2026
14.4.0 – 16.14.2CommonJSJun 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

Similar popularity