No description
## Summary Fixes #20219. The `@tailwindcss/postcss` exports map serves the CJS-shaped `dist/index.d.ts` (`export = _default`) for both the `import` and `require` conditions, while the correct ESM declaration file `dist/index.d.mts` (`export { _default as default }`) is built and published but never referenced. Type checkers that treat the import condition as ESM reject the default import with TS1192 — concretely, `deno check` on Deno 2.8.3+ (which ships TypeScript 6.0) fails on `import tailwindcss from "@tailwindcss/postcss"`. This splits the export entry into per-condition `types` blocks so ESM importers resolve `index.d.mts` and CJS consumers keep `index.d.ts` — the same shape `@tailwindcss/vite` already uses (`"types": "./dist/index.d.mts"`). Two notes on the issue as filed: - Stock `tsc` with NodeNext does **not** reproduce the error (declaration file format follows the file extension and package `type`, not the matched condition), so I didn't take the suggested `export =` → `export default` change in `index.d.ts` — that would break CJS consumers, and the correct ESM declarations already ship. - `@tailwindcss/node` has the same single-`types` exports shape; happy to follow up there if you want parity. ## Test plan Against `@tailwindcss/postcss@4.3.0` with the published exports map, then again with only this `package.json` change applied to the installed package: ```sh # Deno 2.8.3 (TypeScript 6.0), nodeModulesDir: auto deno check main.ts # before: TS1192 "Module ... index.d.ts has no default export" — after: passes ``` ```sh # typescript@6.0.0-dev (NodeNext), one ESM importer + one .cts require importer tsc --noEmit # passes both before and after (no regression for npm consumers) ``` `@arethetypeswrong/cli`: | | published 4.3.0 | with this change | |---|---|---| | node16 (from ESM) | 🎭 Masquerading as CJS | 🟢 (ESM) | | node16 (from CJS) | 🟢 (CJS) | 🟢 (CJS) | | bundler | 🟢 | 🟢 | |
||
|---|---|---|
| .github | ||
| crates | ||
| integrations | ||
| packages | ||
| patches | ||
| playgrounds | ||
| scripts | ||
| .gitignore | ||
| .prettierignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| rust-toolchain.toml | ||
| turbo.json | ||
| vitest.config.ts | ||
A utility-first CSS framework for rapidly building custom user interfaces.
Documentation
For full documentation, visit tailwindcss.com.
Community
For help, discussion about best practices, or feature ideas:
Discuss Tailwind CSS on GitHub
Contributing
If you're interested in contributing to Tailwind CSS, please read our contributing docs before submitting a pull request.