[Bug?]: Solid Start parses every TypeScript file as TSX
Duplicates
- [X] I have searched the existing issues
Latest version
- [X] I have tested the latest version
Current behavior 😯
I have a TypeScript dependency (Not transpiled) that uses the alternative cast syntax (<any>{} instead of {} as any), which is allowed in ".ts" files but not in ".tsx".
When I import that dependency it throws a syntax error because EVERY file is interpreted as TSX
Expected behavior 🤔
Normal ".ts" files should NOT behave as ".tsx"
Steps to reproduce 🕹
Steps:
- Create a new bare Solid Start project with TypeScript (
npm init solid) - Go inside the "src" directory and create a file named "a.ts" containing
export default <any>{}; - Add this (↓) to "app.tsx"
import a from "./a";
console.log(a);
You'll get an error like this one
Context 🔦
I tried specifying the extensions option in the config, but here it's being added instead of overriding the default one
import { defineConfig } from "@solidjs/start/config";
export default defineConfig({
extensions: [ "jsx", "tsx" ]
});
I suggest changing that line into
const extensions = start.extensions || DEFAULT_EXTENSIONS;
Or even better, this one into
const DEFAULT_EXTENSIONS = ["jsx", "tsx"];
[!NOTE] This is just a partial suggestion, since I noticed that doing this has the side effect of breaking ".ts" API routes
Your environment 🌎
I don't know what command you are talking about, sorry (Luckily, I don't think it matters anyway)
System:
OS: Windows 11
CPU: (16) x64
Binaries:
Node: v22.8.0
npm: 10.8.2
npmPackages:
@solidjs/[email protected]
[email protected]
[email protected]
this is babel
Interesting... Then I wonder why the behaviour is different with normal solid
Interesting... Then I wonder why the behaviour is different with normal solid
likely something to do with the way Vinxi configures the Solid plugin. I marked as Vinxi issue and added the needs triage so we can dig on this
Thanks
Is there any workaround for this? And way to fix the babel config without breaking .ts API routes?