168 likes
·
121.1K reads
42 comments
Great article
I think you should update jsx
key of tsconfig.json to
"jsx": "react-jsx"
to prevent typescript errors like
'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.
Updated, thank you for that. 🙏
Thank you so much for this easy to follow post. I had been wanting to make the switch from CRA to Vite for a while but I was worried it would take me a long time. After reading your article I made the switch in about 3 hours!!
Great to hear Matthew! Glad you found the article useful.
This was a great article, I read it because I wanted to know about this migration as it very relevant my my work place and it up fixing and completely different vite issue I have had for weeks, with the resolve.alias config! AMAZING
Great to hear it helped Malin. 👍
Just followed your guide to sucessfully migrate to vite. It's so fast and I'm really happy to finally have gotten rid of cra. (not being able to update to ts5 was the final straw).
Here's a tipp though: Vite recommends using vite-plugin-checker
for checking types.
I also added it and it works great. This removes your only "disadvantage".
Excellent thanks. This wasn't available at the time of writing so happy to see that!
Cathal Mac Donnacha, I just found the same thing after searching around Vite docs. Maybe you could just update your post to mention it? Thanks for the helpful post!
Thanks Jan Paepke. I still see it as a disadvantage since it's not built into Vite itself. However, I've mentioned it as an option. 👍
10/10 hearts! Worked flawlessly. Migrated Refine app from CRA to Vite.
Updated scripts to - {
"start": "refine run vite",
"build": "tsc && refine run vite build",
"serve": "refine run vite preview",
"refine": "refine"
}
Thereafter npm start
did show empty white page for a long time but soon after the content displayed
Excellent migration guide from CRA to Vite 👌
Awesome, I also made the switch from CRA. Now I am using Next.js and Vite.
Worked wonders, thanks!
Glad you found it useful Freddie.
nice! now my homepage won't render and i f*ed up my whole app!
lol jk. got it working. thanks!
very useful, I switched from CRA too and already seeing the benefits
This is probably a long shot, but do you know why my page is totally blank now? There's no content in the root div, almost no console logs, and no network activity.
I'm afraid I wouldn't be able to help without looking at the project. Is it open source?
Have you tried #3 under the Troubleshooting section?
Cathal Mac Donnacha Yep, and I know that worked because I can see the root div, there's just nothing in it. IntelliJ also isn't happy about the /src/index.tsx
, it thinks it doesn't exist and I think it's trying to look from the public folder. IntelliJ stops complaining when I change it to src/index.tsx
, but the page is still blank.
Also the link you added to the troubleshooting docs is broken.
Our app is not open source and I can't make it open source :/ I knew this might be a long shot, but its hard to debug when there's no error messages or anything...
Alex Sweeney No worries. I updating the link to the troubleshooting docs, thanks for that!
I am getting a blank screen after running yarn run dev. I moved my index.html to the root of the folder and added the script but nothing is working.
Hey Dhruv, did you manage to get this working?
Great article! The only think that kept it from working after following this guide was lack of proxying, which can easily be added in defineConfig
. You might wanna add something about this since I assume(?) most people use it. I my case, I had to change it to this:
export default defineConfig({
plugins: [react(), viteTsconfigPaths(), svgrPlugin()],
server: {
port: 3000,
proxy: {
"/api": {
target: "http:[double-slash]localhost:8080",
changeOrigin: true,
},
'/ws': {
target: 'ws:[double-slash]localhostt:8080',
ws: true,
},
},
},
});
where [double-slash]
is an awkward way to get around the fact that I'm not allowed to post "links".
Vite is a lot faster. 💨
Just note, vite-plugin-svgr package was release version 4, so if you install this version it won't work with syntax in this blog. You should downgrade to verion 3.3.0
What syntax should be used and I can update the article?
Cathal Mac Donnacha You can refer on this site npmjs.com/package/vite-plugin-svgr
Đồng Đặng Minh I just updated it. Can you check if it looks ok?
Cathal Mac Donnacha Syntax is look good for library's version latest, but I don't think it will be used for most developer. So I suggest this section should be show the both syntaxs of version 3.x and 4.x
Đồng Đặng Minh I imagine anyone migrating from CRA to Vite will be using a fresh installation of Vite, therefore picking up the latest version of svgr.
Great article, thank you very much! It saved me from a lot of headaches 🍻
Great to hear Francesco!
Is there a step required if my project uses craco ?
Sorry, I've never used craco.
I don't know if it is alright to ask questions here, but I have migrated on of my CRA's fully to vite now, following this amazing guide. But I am running into problems when it comes to building it for productions, whenever I run it in productions it cannot find the files in assets folders, it fails with 404. I think this is because the index.html script and link tags are missing a leading . to the paths but I cannot find anywhere on how to configure vite fix this issue. Have you any ideas?
Hey Malin, I think this question would be best placed on Stack Overflow as it will be difficult to help without code examples, screenshots etc.
Cathal Mac Donnacha Thank you, fully understand!