Skip to content

fix(create-vite): update tsconfig with moduleDetection force#17468

Merged
patak-cat merged 2 commits into
vitejs:mainfrom
t-cc:fix/update-module-detection-in-ts-react-templates
Jun 18, 2024
Merged

fix(create-vite): update tsconfig with moduleDetection force#17468
patak-cat merged 2 commits into
vitejs:mainfrom
t-cc:fix/update-module-detection-in-ts-react-templates

Conversation

@t-cc
Copy link
Copy Markdown
Contributor

@t-cc t-cc commented Jun 13, 2024

Description

fix #17443

Problem solved:

With the current configuration, the application may compile successfully but fail at runtime.

Reproducible example here:https://stackblitz.com/edit/vitejs-vite-srbrdd

Reproduction

https://stackblitz.com/edit/vitejs-vite-srbrdd?file=tsconfig.json

Steps to reproduce

  1. Start a new typescript react project: https://vite.new/react-ts
  2. Add a new ts file inside the src folder (for example newfile.ts) with this content: const MY_CONST = 1
  3. Print the value of the constant inside App.tsx : {MY_CONST},

At this point, you should be able to compile (with npx tsc --noEmit) or build the app ( npm run build ) without errors, but the app fails at runtime ( npm run dev ) in the preview.

Notes:

I was only able to reproduce this with the react and react templates.

@bolt-new-by-stackblitz
Copy link
Copy Markdown

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@bluwy
Copy link
Copy Markdown
Member

bluwy commented Jun 14, 2024

Is there a reason to only apply to the react and preact templates? Should it be applied to all tsconfigs that has isolatedModules: true?

@t-cc
Copy link
Copy Markdown
Contributor Author

t-cc commented Jun 14, 2024

Is there a reason to only apply to the react and preact templates? Should it be applied to all tsconfigs that has isolatedModules: true?

I was able to reproduce the error just react and preact (actually the absence of error). For example, with the vite template it fails at compile time without updating the typescript configuration.
https://stackblitz.com/edit/vitejs-vite-eygbwq?file=src%2Fcomponents%2Fconstants.ts,src%2Fcomponents%2FHelloWorld.vue&terminal=dev

Also I only have experience with react and preact... perhaps someone with experience in these frameworks can take care of the updates.

@bluwy
Copy link
Copy Markdown
Member

bluwy commented Jun 17, 2024

I think we should update it for the rest of the templates. It's not related to frameworks specifically. If you use MY_CONST in another .ts file for example, you can see that there's no errors either.

@t-cc
Copy link
Copy Markdown
Contributor Author

t-cc commented Jun 17, 2024

I think we should update it for the rest of the templates. It's not related to frameworks specifically. If you use MY_CONST in another .ts file for example, you can see that there's no errors either.

Yes, you are right: demo

@t-cc t-cc changed the title fix: update tsconfig in react and preact templates (fix: #17443) fix: update tsconfig in new project templates (fix: #17443) Jun 17, 2024
Copy link
Copy Markdown
Member

@bluwy bluwy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@bluwy bluwy changed the title fix: update tsconfig in new project templates (fix: #17443) fix(create-vite): update tsconfig with moduleDetection true Jun 18, 2024
@patak-cat patak-cat merged commit 7b240e4 into vitejs:main Jun 18, 2024
@bluwy bluwy changed the title fix(create-vite): update tsconfig with moduleDetection true fix(create-vite): update tsconfig with moduleDetection force Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update typescript config related with isolatedModules in new project templates

3 participants