## 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 | 🟢 | 🟢 |
51 lines
1.3 KiB
JSON
51 lines
1.3 KiB
JSON
{
|
|
"name": "@tailwindcss/postcss",
|
|
"version": "4.3.0",
|
|
"description": "PostCSS plugin for Tailwind CSS, a utility-first CSS framework for rapidly building custom user interfaces",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/tailwindlabs/tailwindcss.git",
|
|
"directory": "packages/@tailwindcss-postcss"
|
|
},
|
|
"bugs": "https://github.com/tailwindlabs/tailwindcss/issues",
|
|
"homepage": "https://tailwindcss.com",
|
|
"scripts": {
|
|
"lint": "tsc --noEmit",
|
|
"build": "tsup-node",
|
|
"dev": "pnpm run build -- --watch"
|
|
},
|
|
"files": [
|
|
"dist/"
|
|
],
|
|
"publishConfig": {
|
|
"provenance": true,
|
|
"access": "public"
|
|
},
|
|
"exports": {
|
|
".": {
|
|
"import": {
|
|
"types": "./dist/index.d.mts",
|
|
"default": "./dist/index.mjs"
|
|
},
|
|
"require": {
|
|
"types": "./dist/index.d.ts",
|
|
"default": "./dist/index.js"
|
|
}
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"@alloc/quick-lru": "^5.2.0",
|
|
"@tailwindcss/node": "workspace:*",
|
|
"@tailwindcss/oxide": "workspace:*",
|
|
"postcss": "catalog:",
|
|
"tailwindcss": "workspace:*"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "catalog:",
|
|
"@types/postcss-import": "14.0.3",
|
|
"dedent": "catalog:",
|
|
"internal-example-plugin": "workspace:*",
|
|
"postcss-import": "^16.1.1"
|
|
}
|
|
}
|