+- **SCSS importer JS/TS rejection**: when the importing file is `.scss` / `.sass` AND the standard resolver returns a path with a JS/TS-family extension (`.tsx`, `.ts`, `.mts`, `.cts`, `.js`, `.jsx`, `.mjs`, `.cjs`), the result is rejected and resolution re-routes through the SCSS-aware fallback chain (CSS-extension probe, partial convention, include paths, node_modules). When those also fail, the import is reported as `Unresolvable` rather than falling through to the JS/TS extension list. Sass's resolution algorithm only ever considers `.css` / `.scss` / `.sass` files, so a sibling `.tsx` cannot legally satisfy a Sass `@use` / `@import` even though `oxc_resolver`'s extension list places `.tsx` before `.scss`. Without this guard, `@use 'Widget'` from a `.scss` file resolved to `Widget.tsx` whenever both files existed, creating phantom 3-file circular dependencies in standard CSS-modules / Angular `styleUrls` patterns where `.tsx` components import their own `.scss` and a sibling `.scss` shares variables/mixins via `@use`. See issue #245.
0 commit comments