Comments (7)
Notes:
- TSConfing
"jsx": "react"
is opt out of automatic runtime. - TSConfig defined
"jsxImportSource": "react"
is default to current settings. - Anything else, read pass on as is.
Did a go at it.
const jsxImportSrc = tsBuildConfig.compilerOptions.jsxImportSource
const jsxOption = tsBuildConfig.compilerOptions.jsx === "react"
? {}
: jsxImportSrc === "react"
? {}
: { jsxRuntime: "automatic" as const, jsxImportSrc, }
ReactPlugin({ ...jsxOption, })
Worked perfectly with others, like @emotion/react
"jsx": "react-jsx",
"jsxImportSource": "@emotion/react",
and
"jsx": "react-jsx",
"jsxImportSource": "react",
from vite-plugin-react.
Does esbuild support jsxImportSource
? According to https://esbuild.github.io/content-types/#tsconfig-json only a few fields are supported which Vite passes. Maybe this is related to plugin-react and it's babel transform, but regardless it would be great if you can submit the PR so it's easier to view the proposed changes.
from vite-plugin-react.
All the heavy lifting is already done by the React plugin, this is purely a convenience feature. Making sure that we don't repeat configs and keep one single source of truth.
from vite-plugin-react.
Yes, esbuild does support jsxImportSource
.
from vite-plugin-react.
Now that jsx transformation is done by esbuild and that the esbuild plugin correctly read this options, it should be as easy as removing this line https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/src/index.ts#L152 for TS projects.
This should also enable multiple runtime per app that someone asked in the discussions.
But I don't know how to handle that for JS project (or more complicated, mixed projects)
from vite-plugin-react.
Hello @seivan. Please provide a minimal reproduction using a GitHub repository or StackBlitz. Issues marked with need reproduction
will be closed if they have no activity within 3 days.
from vite-plugin-react.
Hi!
Just tested with the latest version of Vite and the plugin and it it's already working in fact (with one TS config that specify jsxImportSource
and no options for the react plugin).
If you have a more complex usecase not supported please share a repro
from vite-plugin-react.
Related Issues (20)
- HMR improvements for .ts files that include jsx
- Default ESLint setup ignores JSX files if you run `npx eslint .` HOT 3
- Injecting Preamble not possible when using `renderToPipeableStream`. HOT 2
- inject css in shadowDom HOT 1
- Does the React plugin not support React 16? I couldn't find related documentation. HOT 1
- react-beautiful-dnd拖拽插件在vite+react上面不能使用,react的脚手架就没有问题
- react-beautiful-dnd在vite脚手架下面不能拖拽
- **Update** It worked when I allocated a whopping 16GB of RAM for Vite's initialization cycle.
- Conflict with plugin-vue-jsx HOT 2
- Can not support hmr x include files inside node_modules
- vercel build, Writable' is not exported by __vite-browser-external HOT 1
- gettting jsxDev is not defined error while using LexicalRichTextPlugin in react HOT 1
- Could not resolve !!raw-loader!prismjs HOT 4
- Heading dropdown is not working for font size change like Heading 1 Heading 2
- ESLint upgrade needed HOT 1
- ESBuild supports decorators now HOT 1
- Running React Compiler not successful HOT 2
- Vite HMR not work with framer motion in dev mode HOT 2
- supporting nextjs
- The 4.3.0 version break React compiler setup HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vite-plugin-react.