# Is parcel ESM-only? Can you require() it?

> parcel@2.16.4 is a CommonJS package. CommonJS — require() works on every Node.js version we test.

Blazing fast, zero configuration web application bundler

Latest version 2.16.4, published Feb 2, 2026.

parcel ships CommonJS only. require("parcel") should work on every Node.js version the package supports (>= 16.0.0); the runtime probe has not run for this version. import "parcel" also works because Node.js and Bun can import CommonJS from ES modules, but only the default export is guaranteed; named imports depend on Node's static analysis of the module.

## What to do

1. require("parcel") should work on every Node.js version the package supports (>= 16.0.0); the runtime probe has not run for this version.
2. From ES modules use the default import: import parcel from "parcel"; then destructure. Named imports only work when Node.js can statically detect the exports.
3. TypeScript: no types are available for parcel; declare the module yourself if you need them.

## Facts

- Latest: 2.16.4 (Feb 2, 2026)
- Module format: CommonJS
- Last CommonJS version: 2.16.4
- TypeScript types: none
- Node engines: >= 16.0.0
- Weekly downloads: 240K
- License: MIT

## Runtime test results for parcel@2.16.4

Runtime probe pending for this version (install failed: PROBE_TIMEOUT). The facts above come from package.json.

## How to import parcel

ES modules:

```js
import parcel from "parcel";
```

CommonJS:

```js
const parcel = require("parcel");
```

## Module format by version

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

| Versions | Format | First published |
|---|---|---|
| 1.9.7 – 2.16.4 | CommonJS | Jul 16, 2018 |

## Frequently asked

**Is parcel ESM-only?**

parcel@2.16.4 is a CommonJS package. parcel ships CommonJS only. require("parcel") should work on every Node.js version the package supports (>= 16.0.0); the runtime probe has not run for this version. import "parcel" also works because Node.js and Bun can import CommonJS from ES modules, but only the default export is guaranteed; named imports depend on Node's static analysis of the module.

**Can I import parcel with ES module syntax?**

Yes. import parcel from "parcel" works in Node.js and Bun because they support importing CommonJS modules. Named imports work only when Node.js can statically detect the exports.

**Does parcel ship TypeScript types?**

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

## Links

- [parcel on npm](https://www.npmjs.com/package/parcel)
- [Source repository](https://github.com/parcel-bundler/parcel)
- [HTML version](https://canirequire.com/package/parcel/)
- [JSON version](https://canirequire.com/package/parcel.json)

---

For scripts and AI agents: any package is at https://canirequire.com/package/<name>/index.md (Markdown) or https://canirequire.com/package/<name>.json (JSON); the site index is https://canirequire.com/llms.txt. Fetch the URL directly; no search needed.
