-
-
Notifications
You must be signed in to change notification settings - Fork 73
Description
Describe the bug
I think in the last few releases there's been a degradation in the import resolution for this package.
I first encountered issues with "ReferenceError: exports is not defined" when running vitest
in my project. @phosphor-icons/react
is a dependency of a package I'm using, so it took me a bit to figure out where/why I was hitting this issue. It could also be an issue of the consuming package but I've also noticed just downgrading to 2.1.8
works.
Steps to Reproduce
I am using https://arethetypeswrong.github.io/ to illustrate the issue while I work on creating a minimal repo with reproduction steps (its not trivial, because I think I need to create some mix of ESM / CJS scenario to hit the issue).
Expected behavior
Clean imports without errors
Screenshots
2.1.8 looks decent
pnpm attw --pack .
@phosphor-icons/react v2.1.8
Build tools:
- @arethetypeswrong/cli@^0.18.1
- typescript@^5.8.3
- vite@^6.3.5
🐛 Import resolved to types through a conditional package.json export, but only after failing to resolve through an earlier condition. This behavior is a TypeScript bug (https://github.com/microsoft/TypeScript/issues/50762). It may misrepresent the runtime behavior of this import and should not be relied upon. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FallbackCondition.md
🚭 Syntax detected in the module is incompatible with the module kind according to the package.json or file extension. This is an error in Node and may cause problems in some bundlers. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/UnexpectedModuleSyntax.md
┌──────────────────────────────────────┬────────────┬───────────────────┬─────────────────────────────┬────────────────────────────┐
│ │ node10 │ node16 (from CJS) │ node16 (from ESM) │ bundler │
├──────────────────────────────────────┼────────────┼───────────────────┼─────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react" │ 🟢 │ 🟢 (CJS) │ 🐛 Used fallback condition │ 🐛 Used fallback condition │
│ │ │ │ 🚭 Unexpected module syntax │ │
├──────────────────────────────────────┼────────────┼───────────────────┼─────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/icons/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼────────────┼───────────────────┼─────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/csr/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼────────────┼───────────────────┼─────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/lib/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼────────────┼───────────────────┼─────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/ssr" │ 🟢 │ 🟢 (CJS) │ 🐛 Used fallback condition │ 🐛 Used fallback condition │
│ │ │ │ 🚭 Unexpected module syntax │ │
├──────────────────────────────────────┼────────────┼───────────────────┼─────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/ssr/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼────────────┼───────────────────┼─────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/package.json" │ 🟢 (JSON) │ 🟢 (JSON) │ 🟢 (JSON) │ 🟢 (JSON) │
├──────────────────────────────────────┼────────────┼───────────────────┼─────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
└──────────────────────────────────────┴────────────┴───────────────────┴─────────────────────────────┴────────────────────────────┘
pnpm dlx @arethetypeswrong/cli --pack .
@phosphor-icons/react v2.1.9
Build tools:
- typescript@^5.8.3
- vite@^6.3.5
⚠️ A require call resolved to an ESM JavaScript file, which is an error in Node and some bundlers. CommonJS consumers will need to use a dynamic import. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/CJSResolvesToESM.md
🚭 Syntax detected in the module is incompatible with the module kind according to the package.json or file extension. This is an error in Node and may cause problems in some bundlers. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/UnexpectedModuleSyntax.md
🥴 Import found in a type declaration file failed to resolve. Either this indicates that runtime resolution errors will occur, or (more likely) the types misrepresent the contents of the JavaScript files. Use -f json to see the imports that failed to resolve. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/InternalResolutionError.md
🐛 Import resolved to types through a conditional package.json export, but only after failing to resolve through an earlier condition. This behavior is a TypeScript bug (https://github.com/microsoft/TypeScript/issues/50762). It may misrepresent the runtime behavior of this import and should not be relied upon. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FallbackCondition.md
┌──────────────────────────────────────┬────────────┬──────────────────────────────┬──────────────────────────────┬────────────────────────────┐
│ │ node10 │ node16 (from CJS) │ node16 (from ESM) │ bundler │
├──────────────────────────────────────┼────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react" │ 🟢 │ ⚠️ ESM (dynamic import only) │ 🥴 Internal resolution error │ 🐛 Used fallback condition │
│ │ │ 🚭 Unexpected module syntax │ 🐛 Used fallback condition │ │
│ │ │ 🥴 Internal resolution error │ │ │
├──────────────────────────────────────┼────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/icons/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/csr/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/lib/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/ssr" │ 🟢 │ 🚭 Unexpected module syntax │ 🥴 Internal resolution error │ 🐛 Used fallback condition │
│ │ │ ⚠️ ESM (dynamic import only) │ 🐛 Used fallback condition │ │
│ │ │ 🥴 Internal resolution error │ │ │
├──────────────────────────────────────┼────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/ssr/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/package.json" │ 🟢 (JSON) │ 🟢 (JSON) │ 🟢 (JSON) │ 🟢 (JSON) │
├──────────────────────────────────────┼────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
└──────────────────────────────────────┴────────────┴──────────────────────────────┴──────────────────────────────┴────────────────────────────┘
pnpm dlx @arethetypeswrong/cli --pack .
@phosphor-icons/react v2.1.10
Build tools:
- typescript@^5.8.3
- vite@^6.3.5
⚠️ A require call resolved to an ESM JavaScript file, which is an error in Node and some bundlers. CommonJS consumers will need to use a dynamic import. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/CJSResolvesToESM.md
🚭 Syntax detected in the module is incompatible with the module kind according to the package.json or file extension. This is an error in Node and may cause problems in some bundlers. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/UnexpectedModuleSyntax.md
🥴 Import found in a type declaration file failed to resolve. Either this indicates that runtime resolution errors will occur, or (more likely) the types misrepresent the contents of the JavaScript files. Use -f json to see the imports that failed to resolve. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/InternalResolutionError.md
🐛 Import resolved to types through a conditional package.json export, but only after failing to resolve through an earlier condition. This behavior is a TypeScript bug (https://github.com/microsoft/TypeScript/issues/50762). It may misrepresent the runtime behavior of this import and should not be relied upon. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FallbackCondition.md
💀 Import failed to resolve to type declarations or JavaScript files. https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/NoResolution.md
┌──────────────────────────────────────┬──────────────────────┬──────────────────────────────┬──────────────────────────────┬────────────────────────────┐
│ │ node10 │ node16 (from CJS) │ node16 (from ESM) │ bundler │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react" │ 🟢 │ ⚠️ ESM (dynamic import only) │ 🥴 Internal resolution error │ 🐛 Used fallback condition │
│ │ │ 🚭 Unexpected module syntax │ 🐛 Used fallback condition │ │
│ │ │ 🥴 Internal resolution error │ │ │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/icons/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/csr/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/lib/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/lib" │ 💀 Resolution failed │ 🚭 Unexpected module syntax │ 🥴 Internal resolution error │ 🐛 Used fallback condition │
│ │ │ ⚠️ ESM (dynamic import only) │ 🐛 Used fallback condition │ │
│ │ │ 🥴 Internal resolution error │ │ │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/ssr" │ 🟢 │ 🚭 Unexpected module syntax │ 🥴 Internal resolution error │ 🐛 Used fallback condition │
│ │ │ ⚠️ ESM (dynamic import only) │ 🐛 Used fallback condition │ │
│ │ │ 🥴 Internal resolution error │ │ │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/ssr" │ 💀 Resolution failed │ 🚭 Unexpected module syntax │ 🥴 Internal resolution error │ 🐛 Used fallback condition │
│ │ │ 🥴 Internal resolution error │ 🐛 Used fallback condition │ │
│ │ │ ⚠️ ESM (dynamic import only) │ │ │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/dist/ssr/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/package.json" │ 🟢 (JSON) │ 🟢 (JSON) │ 🟢 (JSON) │ 🟢 (JSON) │
├──────────────────────────────────────┼──────────────────────┼──────────────────────────────┼──────────────────────────────┼────────────────────────────┤
│ "@phosphor-icons/react/*" │ (wildcard) │ (wildcard) │ (wildcard) │ (wildcard) │
└──────────────────────────────────────┴──────────────────────┴──────────────────────────────┴──────────────────────────────┴────────────────────────────┘
Context (please complete the following information):
System:
OS: macOS 15.5
CPU: (10) arm64 Apple M2 Pro
Memory: 456.81 MB / 16.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.19.2 - ~/Library/pnpm/node
Yarn: 1.22.22 - /opt/homebrew/bin/yarn
npm: 10.8.2 - ~/Library/pnpm/npm
pnpm: 10.6.3 - ~/Library/pnpm/pnpm
bun: 1.2.16 - ~/.bun/bin/bun
Watchman: 2025.05.26.00 - /opt/homebrew/bin/watchman
Additional notes