[HN Gopher] Vite - Next Generation Front End Tooling
       ___________________________________________________________________
        
       Vite - Next Generation Front End Tooling
        
       Author : legrande
       Score  : 366 points
       Date   : 2022-07-03 13:06 UTC (9 hours ago)
        
 (HTM) web link (main.vitejs.dev)
 (TXT) w3m dump (main.vitejs.dev)
        
       | Kyro38 wrote:
       | Brandon Roberts created a POC starter for Angular+Vite :
       | 
       | https://twitter.com/brandontroberts/status/15429548608989102...
        
         | moystard wrote:
         | This is to generate a vanilla Angular project using vit, not a
         | vite powered Angular project.
        
       | canaus wrote:
       | So is it safe to say that this tool is mostly trying to solve the
       | developer experience side of front-end development, instead of
       | trying to create a "new" technology such as SSR?
       | 
       | I've just mostly seen "fast" and "HMR" as the features of Vite,
       | but I can't see a team switching over an entire project just to
       | solve something that was probably decently "solved" to begin
       | with.
        
         | sachinraja wrote:
         | I don't think anyone is expecting an existing production
         | project to switch over. Vite offers amazing DX for new projects
         | though. Just because something is solved doesn't mean it can't
         | get better.
        
       | noduerme wrote:
       | Am I alone in that I don't webpack or otherwise bundle anything
       | until I deploy? If I'm building a large typescript project, I
       | just run it directly out of source JS and CSS files on my dev
       | server. Only when upgrades are finished and tested do I bundle
       | them and put them on the production server.
        
       | fionic wrote:
       | No offense man I can't really tell what this is... hmr and dev
       | tools cli with a new transpiler?... it's not next generation it's
       | a patch/minor upgrade to current generation tooling and it comes
       | with a [extremely] major upgrade to swap it with whatever is
       | currently used.
        
       | tzm wrote:
       | Last I tested Vite (6 mo ago) it didn't support web3 lib and a
       | few others. Has anyone tested recently?
        
       | fasteo wrote:
       | Old backend coder here. All I see here is
       | 
       | >>> it's fast
       | 
       | That's the same thought I 30 years ago when going from compiling
       | a Fortran program (minutes) to compiling programs with Turbo
       | Pascal 3.0 (instant)
       | 
       | History repeats itself I guess.
        
       | supz_k wrote:
       | I yesterday migrated our Laravel project from Laravel Mix (which
       | uses webpack) to Vite (https://laravel.com/docs/9.x/vite), and
       | couldn't be more happier.
       | 
       | Earlier, webpack took 3-4 seconds to re-bundle on file changes
       | when running npm run watch (It is a quite large typescript +
       | react project). In Vite, it is less than 300ms. And, React Hot-
       | Reloading is awesome.
        
       | GiorgioG wrote:
       | Vite is excellent and https://swc.rs is another one to keep an
       | eye on.
        
         | sachinraja wrote:
         | Vite could use swc for compiling in the future.
        
       | NaN1352 wrote:
       | I like that you can use --watch if you don't want or can't use
       | HMR for whatever reason (eg. testing with other legacy code).
       | 
       | Also it outputs a "dependency" file during build which you can
       | use to infer the correct js/css includes - and this lets you add
       | Webpack like modern js and all plugins like markdown and icons,
       | to a LEGACY app in php. I did it with a Symfony 1.4 app it's
       | awesome.
        
       | albertTJames wrote:
       | There is no way I'm leaving webpack after those 100 years of
       | frustration and pain. Now that I have reached an almost mediocre
       | level of understanding of it, I am never letting it go.
        
         | simlevesque wrote:
         | Leaving Webpack was one of the most liberating technology
         | choice I ever did. Top 10 easily.
        
       | matchbok wrote:
       | The constant iteration and revolution of basic front-end web dev
       | makes me happy to be a mobile dev.
        
         | DrewADesign wrote:
         | I get your frustration: only being partially invested in front-
         | end web dev, the constant churn of what people consider viable
         | stacks, techniques and architectures can be maddening. It can
         | all seem like a race to implement the hottest javascript du
         | jour in some finicky framework or library while sweeping
         | inscrutable, increasingly complex webpack implementation
         | details under the rug... until they pop out, or the rug catches
         | on fire, or the floor gives out, or any other inevitable thing
         | happens that precludes ignoring them.
         | 
         | Maybe plastering a power strip into a wall rather than doing
         | proper electrical work is a better metaphor. Everybody knows
         | it's a bad idea, but someone made a thing that automatically
         | provisions and deploys new strips, and someone made a thing
         | that plugs stuff in, and someone made a thing that mixes and
         | applies plaster which was replaced by a drywall thing but we
         | still call it plaster, and someone else made a thing that does
         | it in 10 rooms at once...
         | 
         | That said, this seems like a bigger step towards simplifying
         | both the development process AND the toolchain. It only works
         | in newer browsers so it doesn't immediately work for all use
         | cases, but it's good enough for some. We're quickly approaching
         | the point where browser-native implementations of more recent,
         | better designed scripting features are widespread enough to
         | rely on. That _should_ both simplify and stabilize front-end
         | web development for quite some time.
        
         | xisukar wrote:
         | You're being downvoted but it's wild how frontend frameworks
         | pop up, take hold, and then quietly disappear with the next
         | iteration of the same thing with different syntactic sugar.
        
           | Waterluvian wrote:
           | In an environment where you have choice, it takes developer
           | maturity not to just leap on every new tool like this.
           | 
           | But it's wonderfully healthy for an environment to be so
           | alive and full of innovation.
           | 
           | Bazaar vs. Cathedral and whatnot. It's easier for some to
           | just be prescribed a specific SDK.
        
             | JohnBooty wrote:
             | re: Bazaar vs. Cathedral
             | 
             | I think it's an obvious truth that too little
             | innovation/choice is bad. I don't think you'll find any
             | arguments there!
             | 
             | Is there a point where too _much_ of it becomes harmful?
             | For close to ten years now, I feel that experienced and
             | inexperienced devs alike have been confused and repulsed by
             | the utter state of constant wheel-reinvention in the
             | frontend space.
             | 
             | (Perhaps to my own detriment, I've focused on backend work
             | because I'm waiting for the front-end situation to
             | stabilize. Which of course may never happen. Maybe "full-
             | stack dev" is something that will wind up in the history
             | bin next to "webmaster")                    It's easier for
             | some to just be prescribed a specific SDK.
             | 
             | This is a little bit insulting. Nobody wants to "be
             | prescribed a specific SDK" - there's a large middle ground
             | between that, and the current situation which has been
             | chaotic for nearly a whole generation.
             | 
             | I think the situation with backend frameworks is sort of
             | what many would like to see. Django, Rails, Express, etc.
             | No shortage of choice and there is innovation. Yet I don't
             | think anybody would call it chaotic. For me that is a happy
             | middle ground.
        
           | JohnBooty wrote:
           | Yeah it's just wild. I don't ever remember seeing this level
           | of.... sideways.... churn before. Feels like it's been
           | absolute mayhem for close to ten years now.
           | 
           | I thought that for sure, by 2017 or so, we'd have seen a
           | relatively long lived consensus winner like we saw during
           | jQuery's reign.
           | 
           | Instead, it's just been constant roiling.
           | 
           | The roiling is hard to understand because it's not like the
           | other parts of the stack are really mutating that quickly.
           | Backend dev practices/technologies and browser capabilities
           | are not evolving or roiling at anywhere close to this rate.
           | This sort of churn would have made sense during say 1997-2002
           | when the entire stack was being invented and reinvented and
           | the basic idea of browsers themselves were changing rapidly.
        
           | steve_taylor wrote:
           | Yeah, it's not like a single web framework has been the most
           | widely used for seven years running. Oh, wait...
        
             | mtlynch wrote:
             | Which web framework has been the frontrunner for 7 years?
             | jQuery?
             | 
             | According to the latest Stack Overflow survey[0], the most
             | popular is React, which hasn't been the top for the last 7
             | years. And I wouldn't call jQuery the obvious choice before
             | that, as it's been consistently fading in popularity.
             | 
             | https://insights.stackoverflow.com/survey/2021#most-
             | popular-...
        
               | steve_taylor wrote:
               | NPM download stats paint a more accurate picture. I
               | didn't include jQuery because it's not a framework.
               | (React calls itself a view library, but it's definitely a
               | framework.)
        
               | mkoryak wrote:
               | I wouldn't call jQuery a framework. It's an API wrapper
               | (warper). Your link also lists html/css as a programming
               | language
        
           | root_axis wrote:
           | I downvoted it. I did so because, IMO, the comment is
           | superfluous noise seen on every js thread. A tool exists to
           | solve a problem, if you don't understand why it was built or
           | don't like it, that's ok, but the hackneyed complaining about
           | open source software merely existing deserves to be at the
           | bottom of the thread.
        
             | tonetheman wrote:
             | It is not superfluous noise. It is js sadly.
             | 
             | Js is an ever changing mass of stuff. I feel bad for
             | frontend guys for this reason. Always writing for a
             | language that does not even exist... always changing how
             | you shove it all together.
             | 
             | Even worse as soon as you put a foot down and pick
             | something you are behind.
             | 
             | It is exhausting even to watch much less to be in it.
        
             | SOLAR_FIELDS wrote:
             | I'm not the grandparent poster but I'll ask the question in
             | a non-superflous way:
             | 
             | Is this actually better than Webpack and
             | esbuild/Parcel/Rollup/whatever that came before it? Or is
             | it just another opinionated way of packaging stuff up
             | that's faster because it doesn't support 10% of the feature
             | set the other tools do yet?
             | 
             | Looking at the "Why Vite" page, most of the blurbs are
             | basically saying "Existing tools are slow". Well, I bet
             | those existing tools are probably capable of doing 10x of
             | what Vite can do currently. And how much faster IS Vite
             | when bundling a large project? Nothing on that, only some
             | charts with lines saying that they do it differently. They
             | say 10-100x speedup on "prebundling", but if that part of
             | the build is only a small portion of the overall build it
             | might be negligible. Also, they say it's faster because Go.
             | Well I kind of like the dogfooding of all the build tools
             | for JS being written in JS - why introduce a whole new
             | ecosystem here?
             | 
             | Not trying to be a naysayer here, I'm just asking why
             | mindshare should be devoted to yet another project that
             | looks like reinvention of the wheel and starting the cycle
             | anew again when we could instead contribute mindshare to
             | existing mature projects - the reasoning given on the site
             | doesn't seem to be very compelling.
        
               | cercatrova wrote:
               | > _Well I kind of like the dogfooding of all the build
               | tools for JS being written in JS - why introduce a whole
               | new ecosystem here?_
               | 
               | You might find this answer helpful, about Rome which is
               | like Vite but in Rust rather than Go [0], crucially:
               | 
               | > _This justification -- Rome should be written in JS
               | otherwise Rome users are less likely to contribute --
               | irresponsibly focuses on a secondary goal of the project,
               | at the cost of the primary goal, which is to be a end-to-
               | end toolchain for one of the most popular languages in
               | the world._
               | 
               | Speed matters. It is not a sideline consideration, it
               | should be one of the main considerations, over and above
               | a tool being in the same language. In fact, many say that
               | rewriting JS tools in non-JS faster languages will be the
               | future [1].
               | 
               | [0] https://news.ycombinator.com/item?id=28609474
               | 
               | [1] https://leerob.io/blog/rust#the-future-of-javascript-
               | tooling (https://news.ycombinator.com/item?id=29192088)
        
               | doomroot wrote:
               | The reason frontend dev moves "So quickly" is because of
               | new browser developments & capabilities. Esbuild & vite
               | are currently popular because they are one of the first
               | build tools to fully utilize browser ES Modules. This is
               | fundamentally different than what webpack does. Webpack
               | was solving a Pre-ESM problem, "how do we modularize
               | frontend code?" and as such as taken on a lot of bloat to
               | solve this problem which has largely been solved by
               | browser ESM.
        
               | EarthLaunch wrote:
               | It is better. Why are so many people determined to
               | dismiss it on the basis that "things are so bad that we
               | shouldn't try anything new"? That's totally backwards. In
               | a situation of many bad alternatives, searching for new
               | alternatives is the solution, not the problem.
               | 
               | Complaining about bad frontend tooling would be more
               | appropriate to do in a thread that's not about _a tool
               | that practically solves it_.
               | 
               | Instead of complaining about _other_ tools, these people
               | who don 't know what Vite is should be curious and asking
               | what it is, or what it has that's new. That is easy to
               | find out.
               | 
               | > Well, I bet those existing tools are probably capable
               | of doing 10x of what Vite can do currently.
               | 
               | Good luck with your bet.
        
               | [deleted]
        
           | mmargerum wrote:
           | Javascript UI frameworks last longer the Microsoft UI
           | frameworks. It's not like a newer framework is just replacing
           | an old one because of hype. React/Vue are massive
           | improvements over Angular 1.
        
             | sascha_sl wrote:
             | To be completely fair, changes occur way too often even
             | when the name doesn't change. I tried to find a nice
             | component library for starting out with Vue after not doing
             | any frontend or JavaScript in years (I kind of quit when
             | JSPM, the package manager, was hot).
             | 
             | It took me about an hour to figure out nothing I tried to
             | set up worked because I had installed Vue 3 and mostly
             | everything else was still on Vue 2.
             | 
             | Reminds me of Angular 2 rewriting their router every 6
             | weeks - to the point that they just moved on to calling it
             | Angular 3 at release to rid themselves of the information
             | on StackOverflow that was in a constant state of
             | deprecation.
        
           | fomine3 wrote:
           | React era is long.
        
         | ntoskrnl wrote:
         | Are you sticking with the tired old 2019 tech, or have you
         | rewritten everything with Kotlin, Compose, Swift, and SwiftUI?
        
           | aaaaaaaaaaab wrote:
           | We're still writing iOS apps in Objective-C(++).
        
           | lordofgibbons wrote:
           | No, those are old news. We've moved on to Flutter
        
       | mattlondon wrote:
       | Sorry but if it requires NPM then I am not interested. I have
       | been burnt too many times to want to use anything related to NPM.
       | 
       | I would hope that a next generation framework would not have hard
       | dependencies on the cess pit that is NPM :(. Please give us
       | something fresh and interesting.
       | 
       | This is why I am so excited by deno on the backend - finally no
       | more NPM!
        
       | oblak wrote:
       | Speed gains aside, it's pretty great, though I did have to
       | provide a manual path to node_modules/some_package_here because
       | it wouldn't serve those files in dev mode. On my computer alone.
       | No one else. Guess I had a weird setup.
       | 
       | It has many years until it turns into yet another bloated
       | "builder" if you could call it that
       | 
       | Overall, I continue to be impressed by whatever these guys (it's
       | not just Ewan) do even it's getting hard to keep up at my age.
        
       | ggregoire wrote:
       | I find it funny that, as usual, half the comments are complaints
       | about "why are frontend developers always reinventing the
       | wheel"... Meanwhile the 1st post on the front page [1] is about a
       | new "modern" scheduling package for Python. What's wrong with
       | just using Celery, APScheduler, Huey or even cron? Why do we need
       | a new scheduling library? Yet I don't see any "reinventing the
       | wheel" critic in the comments. Double standard I guess.
       | 
       | [1] https://news.ycombinator.com/item?id=31969345
        
         | j-krieger wrote:
         | Correct. People are arguing as if there wasn't a new Container
         | Library being released every month for C++
        
       | ramesh31 wrote:
       | "It's fast" is not going to sell me on a build tool. Make files
       | are fast too. What we learned with the evolution from Gulp/Grunt
       | etc. to Webpack is that you need to find a sweet spot between
       | zero config and full config. The "batteries included" approach
       | works until it doesn't, and for small projects I'm sure it's
       | fine. But every large project inevitably ends up with all kinds
       | of snowflake config that Webpack handles really well, while also
       | having a robust plugin ecosystem with standard defaults.
        
         | simlevesque wrote:
         | It's one of the software that is the easiest to move to. For
         | the vast majority of people, you go from a 150 lines Webpack
         | config to a 15 lines Vite config, possibly the default values.
         | 
         | It is kind of incredible. They've found "a sweet spot between
         | zero config and full config" you are mentionning.
        
       | krick wrote:
       | It gave me a pause to think about how it came that I can never
       | really tell what am I looking at anymore. Forget the HN title,
       | which is stupid -- what does this landing page tell me? Well,
       | that it's... next gen, and it apparently can catch up with me,
       | which is not much, since I'm not really catching up with what's
       | going on anyway. Also, that it's "tooling". Like IDE, or
       | framework, or maybe a chainsaw. Can't tell.
       | 
       | "Getting started" page tells me that "Vite" (pronounced as
       | "veet") is "quick" in French, then it proceeds with quite wordy
       | installation guide. It also _quick_ ly mentions that it's a
       | "build tool". Finally. So, like gulp or grunt, I guess? But it
       | doesn't even mention those, or any other build tools it
       | supposedly replaces. And it seems unlikely, since everybody uses
       | some script that comes with angular or vue or any other framework
       | of your choice nowadays...
        
         | wslh wrote:
         | I remember that Visual Basic (90s) opened with an empty Dialog
         | and UI controls like Windows Forms, Delphi and Xcode now. Just
         | waiting for a tool as easy to use as Google Slides or
         | diagrams.net (draw.io) but produceing the skeleton of an
         | web/mobile app.
         | 
         | Does the software industry have a pathology that avoids making
         | such tool and makes front-end engineers irrelevant except for
         | very complex use cases?
        
           | KronisLV wrote:
           | > Does the software industry have a pathology that avoids
           | making such tool and makes front-end engineers irrelevant
           | except for very complex use cases?
           | 
           | Probably the fact that it's all very opinionated.
           | 
           | Suppose you want to use Vue. Well, do you want Vue 2 or Vue
           | 3? JavaScript or TypeScript? Which of the component libraries
           | do you want: PrimeVue, Quasar, or another one? State
           | management with Pinia or Vuex? What about validations:
           | Vuelidate or maybe something like Vue Formulate, which also
           | includes functionality for forms. Or would you like Vueform
           | instead?
           | 
           | Then again, the same happens if you want to use React or
           | Angular, or any other option out there. There's just too many
           | separate pieces to pick, though I presume that occasionally
           | there are opinionated attempts at giving you a stable base to
           | start out with. Honestly, even something like Ruby on Rails
           | can be a nice option, though it's also understandable that
           | many out there want to create their front ends as separate
           | apps.
           | 
           | Yet the majority of front end projects out there end up a bit
           | like the Dropwizard framework for Java back end development -
           | just stitched together from any number of different pieces,
           | which sometimes will work really well together, but other
           | times less so: https://www.dropwizard.io/en/latest/
        
         | monkey_monkey wrote:
         | "Next gen front end tooling" - for anyone with some vague
         | knowledge of front end development would understand that this
         | is going to be something like webpack, or mix, or grunt, or
         | gulp.
         | 
         | Not every front page has to assume the person going to it knows
         | nothing.
        
           | finfinfin wrote:
           | Front-end tooling that I have to run on the server? Even
           | people familiar with the JS ecosystem might be confused by
           | that.
        
             | monkey_monkey wrote:
             | You don't have to run this on a server. This would never
             | run on a server. This would be used in your local dev
             | environment.
        
               | wonnage wrote:
               | your local dev environment is running a server
        
               | monkey_monkey wrote:
               | Clearly the word server is the same, but that's not
               | really what's meant by a server in front end / back end
               | developer discussions.
        
             | matt89 wrote:
             | I believe you are overexaggerating. It has always been true
             | that you needed some kind of local server when doing
             | frontend development. There are multiple browser mechanism
             | that would not work in any way other than when rendering
             | html/css/js that was returned from a server.
             | 
             | Consequently a build tool (or dev-tool) that offers you a
             | dev-server is really nothing weird in frontend development
             | world. Same as 10-15 years ago when using jQuery and PHP
             | and you would use XAMPP or LAMPP.
        
               | finfinfin wrote:
               | Just google "front-end tools" and look at the few top
               | results. There are many tools for front-end development
               | that are not build tools or have to run on the server.
        
         | oxplot wrote:
         | > It gave me a pause to think about how it came that I can
         | never really tell what am I looking at anymore.
         | 
         | They need to read up on https://posthog.com/blog/hacker-news-
         | premortem
        
         | dtagames wrote:
         | The page might not be great, but the product is! TL;DR is that
         | Vite is a development and build server that requires very
         | little setup. It's "quick" to scaffold a site in Lit, Angular,
         | or React. And easy to build the static version for hosting.
         | That's it!
         | 
         | I wrote a post[0] recently on using Vite with Lit. It shows a
         | real use case and setup scenario.
         | 
         | Here's the relevant summary: "Vite (pronounced "veet" and
         | French for quick) is a development and build server you can run
         | locally. It's perfect for writing and debugging Typescript apps
         | because it updates the browser every time you make changes. And
         | it's perfect for deploying your finished app because Vite can
         | easily build a static copy for publication to an inexpensive
         | hosting website. You can keep a local copy at one stage of
         | development and the production build at another, which is often
         | what you need.
         | 
         | As a bonus, Vite comes with built-scaffolding for Lit apps
         | built with Typescript, which is just what we have in mind."
         | 
         | [0] https://medium.com/@mimixco/getting-started-with-web-
         | compone...
        
         | BiteCode_dev wrote:
         | Terrible landing page for an otherwise excellent tool.
         | 
         | It sets up JS transpiling and bundling for you in an easy way,
         | then provide a server with pretty fast hot reload.
         | 
         | This solves 2 problems:
         | 
         | - the complicated js project stack is now simple to setup,
         | unlike with webpack
         | 
         | - saving and seeing the result of your coding is now almost
         | instant, unlike with CRA
         | 
         | It's a joy to use, given that it's from VueJS author, and I
         | highly recommend it to anyone that has a lof of frontend to do.
        
           | superzamp wrote:
           | Would this replace parcel or be adjacent to it?
        
             | keb_ wrote:
             | Replace it.
        
           | SCLeo wrote:
           | I have been using parcel for web development because I
           | thought webpack is very difficult to use. However, for my
           | latest personal project, I tried webpack. To my surprise, I
           | found webpack 5 much simpler to use then I thought it is
           | (significantly easier than make or gradle, the complexity is
           | not even on the same level). Everything pretty much worked
           | out of box now. All I had to do was to copy the starting
           | template for typescript from their website (~20 lines, half
           | of which are open/closing brackets) and copy the setup for
           | dev server. HMR, code splitting via dynamic imports, etc. all
           | worked without any setup.
        
             | dmix wrote:
             | Webpack is probably fine for new or small projects. It's
             | when you've been using it for a while, do anything complex,
             | or worst of all your framework libraries update then you
             | have to update Webpack which is a nightmare.
             | 
             | Ive had Webpack break more of my deploys than any other
             | piece of software in the last 3 years.
             | 
             | Vite was basically a plug and play replacement (almost zero
             | config) and I also got to drop Babel, so that meant
             | replacing about 12 packages in my package.json and who
             | knows how many in Yarn.lock (Mostly babel and webpack
             | plugins) with 2 vite packages. It's much faster at builds
             | and the chunking of small js files seemed more intelligent
             | and better integrated with Vue.
        
             | shepherdjerred wrote:
             | Vite is just a few lines, and it's a much better experience
             | than webpack
        
             | tpict wrote:
             | Last time I checked NPM the weekly downloads were still
             | heavily slanted in favour of version 4. I wonder if that
             | plays into perception of it.
             | 
             | At work, an engineer in a different team recently
             | recommended we switch to Vite because it's "so much
             | faster". Warm builds are 700ms with our very uninteresting
             | Webpack 5 config. It's hard to imagine that the cost of
             | reconfiguring our entire build would be worth it.
        
             | SparkyMcUnicorn wrote:
             | Vite is incredibly fast compared to Webpack.
             | 
             | I didn't really know how much time I could have been
             | saving, and I never even thought of Webpack as slow.
        
           | unsupp0rted wrote:
           | > pretty fast hot reload
           | 
           | An understatement to be sure: you can set VS Code to auto-
           | save every 1 second and that way whatever you type instantly
           | appears via Vite's Hot Reload in your dev browser. No waiting
           | multiple seconds for a recompile.
           | 
           | It's game-changing workflow (for some tasks).
        
             | intrasight wrote:
             | Game-changer perhaps in a bad way ;) We're losing the art
             | of writing solid code and instead flail with the "hot
             | reload" crutch. I miss the days of punching cards and
             | submitting a deck to be compiled and run - at least in
             | terms of it forcing me to verify my work ahead of time.
             | 
             | And yes - I'm (mostly) kidding. But I did write my first
             | programs on punched cards at a university course while I
             | was still in grade school. Probably the last generation of
             | programmers to experience that discipline.
        
               | nightski wrote:
               | We are also writing far more complicated software. Punch
               | cards didn't have to support thousands of different
               | devices, resolutions, screen densities, input methods,
               | etc. It's a totally different world.
        
               | crdrost wrote:
               | That's totally fair but the tooling is still not where
               | you'd like it.
               | 
               | In theory, there's no reason that you shouldn't be able
               | to backtrace from the website to the filesystem. If you
               | can do that, then your "it reloads every second" becomes
               | even faster, it becomes WYSIWYG, you are writing in the
               | live constantly-refreshing UI. Well, almost: your text
               | editor has Undo and Git and your web browser doesn't. But
               | we could build those into the browser. Heck, Redux is
               | basically Git except without any standardized verbs, just
               | give Redux some standardized verbs for tracking revisions
               | in a living app and you've got everything you need.
               | 
               | If you follow _that_ trend to its logical conclusion (
               | "OK I want a special way to ctrl-click or right-click or
               | something to edit the HTML of a component I see") you
               | eventually get Smalltalk, and we're finally back as
               | productive as we could be in the 70s :)
        
             | jjeaff wrote:
             | I think it does this by not even recompiling. It just links
             | all the uncompiled, uncompressed files and dependencies
             | using a few functions to make them work in the browser.
        
             | boredtofears wrote:
             | I dunno if it's just me, but I've always found live reload
             | to be an overstated benefit. I usually have a mental model
             | of what I'm trying to code that I don't want to check until
             | it's at a specific state - the seconds it takes to press
             | reload doesn't really add up to that much.
             | 
             | I'd say it's more beneficial for CSS styling but I usually
             | mock up my changes in the dev inspector and then copy it
             | over anyways.
        
               | aidos wrote:
               | Exactly that though. For a SPA you're going to have a
               | bunch of state loaded and you don't want to refresh. If
               | you're using something like tailwind where you're
               | transpiling your css too then it's a major boon to have
               | it hot reloaded.
               | 
               | I've found vite to be an awesome dev experience.
        
           | mrwnmonm wrote:
           | So, this is not a framework like React, right?
        
             | maigret wrote:
             | It's more like Webpack, the software that processes your
             | React code into JavaScript bundles that are optimized for
             | the browser. ie puts together what belongs together,
             | removes the unused code, provides a test server to develop
             | and get instant refresh.
        
               | mrwnmonm wrote:
               | Got it, thanks
        
               | eproxus wrote:
               | How would one use it together with a backend that already
               | serves the frontend code? As a compiler only?
        
           | cto_official wrote:
           | One question .. Is the main goal to make development process
           | easy or does it also have an impact on production performance
           | as well ?
        
             | pketh wrote:
             | It's mainly for dev rebuild performance. I also use vite
             | and it's a pretty nice build tool that's relatively easy to
             | configure and quite fast.
             | 
             | It might also affect your production build times, but prod
             | builds are far less frequent and performance isn't
             | important here
        
             | GiorgioG wrote:
             | From https://main.vitejs.dev/guide/
             | 
             | "Vite (French word for "quick", pronounced /vit/, like
             | "veet") is a build tool that aims to provide a faster and
             | leaner development experience for modern web projects."
             | 
             | Ultimately it makes the dev process more productive because
             | builds are generally much faster than most other build
             | tools.
             | 
             | https://main.vitejs.dev/guide/why.html might also be worth
             | a read
        
             | hackerbrother wrote:
             | I can attest that it is a great way to spin up (and compile
             | for server-ready HTML/CSS/JS) a React or Vue project.
             | 
             | Just run 'npm init vite@latest' and you get a basic well-
             | organized React/Vue project ready for components and other
             | dependencies to be dropped in.
             | 
             | Uses esbuild+rollup behind the scenes I believe.
             | 
             | If you have the luxury of picking your tools for a
             | completely fresh web project this is a great way to do it.
        
             | bobthepanda wrote:
             | Ideally, for production you're not constantly rebuilding a
             | JS bundle but instead just building once with all the
             | required package versions and then just serving that bundle
             | all the time.
             | 
             | The bundle only really needs to change if the underlying
             | code does, but in pretty much all cases your
             | customers/users are not actually triggering any changes in
             | your underlying code, that's a security risk.
        
           | and0 wrote:
           | Thanks for the info, will switch from CRA as soon as I can :D
        
         | davidjfelix wrote:
         | Ah, the age old HN pass-time of feeling like everything needs
         | to fit your niche, leaving a comment about how a website didn't
         | fill in your blind spot for you rather than googling what
         | something is with the time.
        
           | InCityDreams wrote:
           | And that's a pastime i welcome, as it saved me many clicks.
           | And, it also confirms what i have been seeing across several
           | websites of late: difficult to penetrate, even in areas i
           | would consider myself well-versed in.
        
           | kodah wrote:
           | I don't think that's what OP is saying. To me, it reads like,
           | "I'd love to know what this is, but based on the linked
           | document and others within near proximity - I can't" which
           | means the link requires that OP has knowledge of the frontend
           | build world - which _I_ will tell you is niche and disparate
           | or that there is a big unsaid problem in this space that is
           | non-obvious to anyone outside of it.
           | 
           | Curiously, both are true. Give OP some slack.
        
             | sachinraja wrote:
             | If they don't have knowledge of the frontend build world,
             | then maybe they'll have to do a bit more reading. Who
             | should Vite's landing page target?
        
               | kodah wrote:
               | By knowledge, what I really mean is intimate knowledge.
               | I'm not a frontend dev, but I do hack away on hobby
               | projects which eventually caused me to make changes to
               | the default tooling that the project starters pre-
               | configure. Given that the landscape so heavily relies on
               | preconfiguration and post-customization, who they're
               | selling to are people who started with a template and
               | know little about what webpack, vite, or next are doing.
        
         | djitz wrote:
        
           | prophesi wrote:
           | I find it extra funny that most of the comments recommend
           | that they just say it's a webpack replacement. If you don't
           | know what webpack is and visit webpack's site, you'll just
           | see it's an asset bundler which Vite explicitly is not.
           | 
           | And if you do already know what webpack is, then "frontend
           | tooling" and its list of features should make it very obvious
           | what Vite is.
        
           | kodah wrote:
           | Whether the project is FOSS or not is irrelevant. They're
           | seeking distribution and in order to further distribute a
           | project needs to be able to cleanly communicate _why_ it
           | deserves more distribution. Ironically, based on your
           | comment, FOSS products are generally very good at this. What
           | OP provided was criticism, and FOSS needs and welcomes
           | criticism to stay strong and relevant. If OP was opening a
           | GitHub issue and berating the maintainers I would agree with
           | you.
           | 
           | tldr: "They don't get paid" is not an escape hatch for
           | genuine, level-headed criticism, and criticism is important
           | for FOSS to stay strong and relevant.
        
             | djitz wrote:
             | The argument presented was neither level-headed nor
             | genuine.
        
               | kodah wrote:
               | It's a tad emotional but still cogent.
        
         | mrwnmonm wrote:
         | Lol, I was about to comment here that I opened the docs, read a
         | few pages, and still don't know how this works or how is it
         | different from react for example.
        
           | asheeshh wrote:
        
         | brundolf wrote:
         | If you're immersed in the front-end world today you would
         | probably know that "build tooling" (and could guess that just
         | "tooling") typically means a) transpilation, and b) bundling;
         | "take my source and turn it into something I can ship and run".
         | Usually there are also related features like minification
         | and/or a live-reloading dev server.
         | 
         | For a long time Babel and Webpack played these roles,
         | respectively, but in the last couple years people have realized
         | things can be way faster and simpler if you integrate the two
         | steps into a single tool and make it opinionated and write it
         | in a native language. As a result we've seen the explosion of
         | options like esbuild, SWC, Parcel, etc. I assume Vite is
         | somewhere in that space
         | 
         | But I agree it's better to be explicit and not assume the
         | reader has all the contextual background
         | 
         | Edit: If you click "Why Vite?" they actually have a wonderful
         | explainer that goes into the above and how Vite relates to it
        
         | Myto wrote:
         | Funny. The landing page told me immediately what it is. And I'm
         | not some expert, I've only done a little bit of hobbyist JS
         | development.
        
         | detritus wrote:
         | Thank you for saying this, because often when this sort of
         | thing pops up on HN I click on the link and stare blankly at
         | the page wondering "Just what the hell IS this?!" and I feel
         | particularly stupid.
         | 
         | I only keep one foot in the webdev sphere as it's not my
         | primary focus any more, but still - I feel that I should be
         | able to 'get it'.
         | 
         | - ed : I should've read the comments first. Glad I'm not alone!
         | 
         | My studio is in a building that also does musical events and
         | there are always posters up for various gigs and I so often
         | have a similar complaint - they're 'designed' (as in, imho,
         | poorly) by someone who's had their head buried in the thing
         | they're promoting and forget that people slightly outside their
         | context need a bit more of a nudge. There's one new one out
         | there today that doesn't have any links to help define context,
         | and the name of the artist is so generic as to be tricky to
         | filter on a web search.
        
         | ianpurton wrote:
         | I had exactly the same experience. I gave it maybe 20 seconds
         | then I was gone.
        
         | thrdbndndn wrote:
         | I'm not a developer and particularly not a front-end one. I
         | have this problem all the time.
         | 
         | Even some of the more "obvious" ones, say, nuxtjs, I have a
         | hard time to get what exactly it offers and why I should use
         | it.
        
           | blowski wrote:
           | Devil's Advocate position here.
           | 
           | I don't know much about carpentry, and if I look at a website
           | selling saws, I will struggle to understand the difference
           | between different models. Dumbing down to an extent that I
           | understand (when I probably won't buy the product anyway)
           | risks alienating the target market that will.
           | 
           | Due to customer demands, end-user requirements, and device
           | fragmentation, front-end development has genuinely become
           | _that_ demanding. So as a non-specialist in the field, you
           | can't look at relatively specialist tools like Vite and Nuxt
           | and expect to understand them straight away.
           | 
           | Sure, many of us long for the halcyon days of "front end"
           | meaning at most pulling in jQuery and embedding something in
           | the page. But then I sound like my Grandad longing for the
           | days when there was no internet at all.
        
             | somenewaccount1 wrote:
             | I am a developer and still took a while to realize what it
             | does. Also, that snowpack is probably just as sufficient.
             | 
             | It's a shite landing page that communicates little, and as
             | a front end framework, well....shouldn't we expect more?
        
               | frankwallis wrote:
               | Snowpack is no longer maintained and they recommend
               | switching to Vite.
        
             | avgcorrection wrote:
             | Nothing like a carpentry analogy to obliterate all nuance.
             | 
             | The OP said:
             | 
             | > Well, that it's... next gen, and it apparently can catch
             | up with me, which is not much, since I'm not really
             | catching up with what's going on anyway. Also, that it's
             | "tooling". Like IDE, or framework, or maybe a chainsaw.
             | Can't tell.
             | 
             | We know that it is "tooling". But what is "next gen" and
             | "catch up with you"? Are those terms that the appropriate
             | audience is just supposed to get?
        
             | sam0x17 wrote:
             | Sticking with your analogy, in the early 2000s we built
             | cabinents and intricate mantelpieces and things ike that,
             | and there were essentially no tools. In the early 2022s we
             | still build cabinents and intricate mantelpieces, but there
             | are a million tools. Meanwhile browser support has become
             | way more consistent across the board and CSS has become
             | easier, yet we think we need super complex tools to do the
             | same tasks we did back in the day.
        
               | blowski wrote:
               | when I started building websites in the late 90s, I
               | needed to support Internet Explorer and Netscape running
               | 15" CRT monitors. Few cared much about accessibility,
               | performance, security, SEO, experimental releases.
               | Clients wanted a 3 page website with few design
               | requirements. I sliced up some PSDs into HTML pages with
               | tables on it, and uploaded it via FTP to a single server.
               | 
               | If I tried to run a web-based business offering that
               | today, I'd get very litle business.
        
             | ipaddr wrote:
             | It feels like this big struggle and effort to end up with
             | another jquery in a few years because in the end that's
             | what works and feels right
        
             | LtWorf wrote:
             | Developer here. I think I can speak for everyone when I say
             | that even when we work with the thing, we can't understand
             | the homepage of the thing.
             | 
             | For example at my $DAYJOB I know what we do but if I didn't
             | the website wouldn't help me to understand.
        
               | gmassman wrote:
               | I'm also a developer and this is a terrible
               | overstatement. My company sells a product that isn't
               | particularly hard to understand, and our www site makes
               | it pretty clear what we're selling.
        
               | cercatrova wrote:
               | You might work at a sales-oriented company then, rather
               | than a consumer or prosumer (self-service) oriented
               | company. Sales-oriented company websites are purposefully
               | opaque so as to not make a potential customer be able to
               | easily compare and contrast tools without going through
               | an in-depth demo for each one, led by salespeople and
               | perhaps engineers.
        
             | azemetre wrote:
             | This is a good point if we were selling physical goods and
             | limited by the amount of information we can convey on a
             | screen but we aren't.
             | 
             | I'd honestly include things like the what and why as
             | critical to documentation. Most libraries, tools, and tech
             | in general are bad at documentation. It's an active choice
             | to omit discussing these things when they should obviously
             | be included but writing good copy is hard.
             | 
             | IDK seems like a good thing to invest in especially if you
             | want your tool to become a dominate player instead of an
             | encroaching tangent.
             | 
             | While there are separate pages for the why and comparisons
             | for vite (but it's only comparing itself to other bleeding
             | edge tools rather than popular ones like webpack,
             | browserify, gulp, grunt) they should be snippets of these
             | sections on the front page. Right now there are 6 title
             | cards of with wasted space with very little information.
             | Compare this with playwright's home page you and
             | immediately know why you want to use the tool:
             | 
             | https://playwright.dev/
             | 
             | For a personal taste thing, I'm not really a fan of these
             | open source tools creating homepages similar to as you
             | would see for various startups/products. My mind
             | immediately goes "oh paid tool, oh well." They do say it's
             | free in a lovely medium size text that doesn't standout
             | much and is beyond the fold.
        
               | blowski wrote:
               | Different way of thinking about this - maybe the devs
               | aren't even the target user of the homepage. If the first
               | time a front end dev hears of Vite is via the homepage,
               | their marketing has a problem. (I first heard of Vite
               | maybe 18 months ago in a discussion on the upcoming Nuxt
               | v3.)
               | 
               | Instead, this homepage is trying to convince some CxO
               | this is a serious tool worth adopting.
               | 
               | Either way, I'd assume there's a good reason you find the
               | homepages of so many popular projects homepages rather
               | vacuous. I doubt it's incompetence.
        
             | mrwnmonm wrote:
             | But he is a developer.
        
               | blowski wrote:
               | They are not a specialist front-end dev.
               | 
               | To use an analogy closer to home, if the average front-
               | end dev were to look at a page talking about some new C++
               | compiler, they'd say "wat?".
        
             | KronisLV wrote:
             | > Due to customer demands, end-user requirements, and
             | device fragmentation, front-end development has genuinely
             | become _that_ demanding. So as a non-specialist in the
             | field, you can't look at relatively specialist tools like
             | Vite and Nuxt and expect to understand them straight away.
             | 
             | Vite is a set of front end tooling - it provides a local
             | dev server, allows you to work with JSX, CSS and
             | TypeScript, as well as lets you build your app, amongst
             | other things. It handles most things that go between
             | editing your source files and having distribution bundles.
             | 
             | Nuxt is a framework for Vue, that attempts to provide a lot
             | of defaults for your Vue apps and also supports server side
             | rendering or static site generation. It has functionality
             | for handling views, routing, state, configuration, as well
             | as middleware, fetching data and validations.
             | 
             | You can probably describe anything in a way that people
             | would get the gist of it straight away. It doesn't have to
             | be all encompassing, it doesn't even have to be 100%
             | correct, just easy to understand, maybe even with a
             | comparison in there (e.g. npm + webpack). Many such
             | descriptions might just fit into a single paragraph of
             | text, or even a tooltip.
        
           | metadat wrote:
           | You aren't alone.
           | 
           | The frontend tooling and framework market is so flooded and
           | noisy, with extremely high churn. At this point it's so hard
           | to keep up with and build things with the latest thing, it's
           | become a hilariously bad joke.
           | 
           | What other language ecosystem is this insane?
        
           | agumonkey wrote:
           | It seems dev has become a subculture forest. Everything is
           | simple if you're in that group and follow the problems and
           | ideas around.
        
           | konfusinomicon wrote:
           | at this point I've come to realize that all you need to know
           | about front end frameworks anymore is that they are not
           | jquery
        
             | smt88 wrote:
             | You are utterly wrong. There's a huge difference between
             | even Next.js and create-react-app, even though they're both
             | based on React.
             | 
             | The JS framework space is huge, messy, complex, and
             | endlessly frustrating, but you can't wave that all away
             | just because _you_ can 't keep up with it.
             | 
             | I can't keep up either, but I do employ people who do, and
             | they recently moved all our build tooling to Vite, which
             | dramatically improved our DX.
        
               | konfusinomicon wrote:
               | I agree! my comment was in jest and was just poking fun
               | at the madness that is the JS ecosystem and it's often
               | overly complex, and ever growing list of solutions to
               | problems that could be probably be solved with a few
               | lines of jQuery.
               | 
               | in the words of Jack Borrough, Senior JS Developer,
               | "JQuery, what are you, five? We use JJQuery."
               | https://jjquery.io/
        
               | sireat wrote:
               | The hilarious thing is that this is the first time I am
               | seeing DX in this context.
               | 
               | Is DX meant to be Developer Experience or something
               | different?
        
         | teaearlgraycold wrote:
         | The feature list on the home page indicate it's a dev server.
        
         | keithnz wrote:
         | click "Why Vite?". I think it has a pretty good explanation
         | about what it is doing and the tools that are similar to it and
         | the problem it is trying to solve.
        
         | lucideer wrote:
         | > _it apparently can catch up with me, which is not much, since
         | I 'm not really catching up with what's going on anyway_
         | 
         | This entirely depends on your situation but for a tool like
         | this (the selling point being that it _does it all for you_ ) I
         | think this is less about catching up with _you_ and more about
         | providing you with the tooling that catches up to the myriad of
         | things in JS that you may feel the need to catch up with.
         | 
         | In this case it's most likely referring to the decision to use
         | native es modules to serve non-dependency code. This means and
         | code you write can use native browser cutting edge without you
         | needing to worry about "what build tooling supports the latest
         | documented standard native browser features" - one of the pains
         | of building is using X standard native tech documented clearly
         | on MDN and finding out it doesn't work cleanly with a specific
         | combination of webpack/rollup plugins I'm leveraging right now.
         | This just lets you use what's standard.
        
         | Rapzid wrote:
         | I feel the title is accurate but I'm familiar with Vite so
         | recognize it's perhaps not adequate..
         | 
         | Anyway, it's a replacement for Webpack based toolchains focused
         | on fast startup and HMR.
         | 
         | Why Vite goes into details: https://vitejs.dev/guide/why.html
        
           | [deleted]
        
           | jimmygrapes wrote:
           | At least it includes the "why?" button (link? why does it
           | look like a button to me?) unlike so many other projects that
           | only have "get started" (I don't want to start something I
           | have no clue about).
        
         | gexla wrote:
         | Personally, I feel like it's rare that I stumble on a tool and
         | need to read its landing page. If I know of it, it's probably
         | because someone told me about it or it's already part of
         | something I inherited. And that's probably the only way I would
         | consider it anyway. I don't care what their pitch is if I don't
         | know anyone using it. Much more common is stumbling across a
         | repo with tooling I'm specifically looking for (because I don't
         | know anyone doing that specific thing and I'm not looking for
         | an alternative to something I'm already using) and the repo
         | docs are even worse.
        
         | cercatrova wrote:
         | Looks like you're looking for the Why Vite page [0].
         | 
         | """
         | 
         | # The Problems
         | 
         | Before ES modules were available in browsers, developers had no
         | native mechanism for authoring JavaScript in a modularized
         | fashion. This is why we are all familiar with the concept of
         | "bundling": using tools that crawl, process and concatenate our
         | source modules into files that can run in the browser.
         | 
         | Over time we have seen tools like webpack, Rollup and Parcel,
         | which greatly improved the development experience for frontend
         | developers.
         | 
         | However, as we start to build more and more ambitious
         | applications, the amount of JavaScript we are dealing with also
         | increased exponentially. It is not uncommon for large scale
         | projects to contain thousands of modules. We are starting to
         | hit a performance bottleneck for JavaScript based tooling: it
         | can often take an unreasonably long wait (sometimes up to
         | minutes!) to spin up a dev server, and even with HMR, file
         | edits can take a couple seconds to be reflected in the browser.
         | The slow feedback loop can greatly affect developers'
         | productivity and happiness.
         | 
         | Vite aims to address these issues by leveraging new
         | advancements in the ecosystem: the availability of native ES
         | modules in the browser, and the rise of JavaScript tools
         | written in compile-to-native languages.
         | 
         | """
         | 
         | [0] https://main.vitejs.dev/guide/why.html
        
       | nullwarp wrote:
       | Recently started a new frontend project with Vite, Typescript and
       | MithrilJS and it's been a real pleasure to work with.
       | 
       | Contrast that to my usual dealings with Webpack I couldn't be
       | happier.
        
         | candiddevmike wrote:
         | Happy to see other folks still using Mithril. I've looked at
         | other frameworks (svelte recently) and keep coming back to
         | Mithril. It's so simple and easy to understand, it'll take
         | something special to have me consider something else.
        
           | nullwarp wrote:
           | Mithril is criminally underrated. Yeah it won't have the same
           | level of community support that things like React and Vue
           | have but it's extremely simple and concise to work with and
           | nothing about it feels "heavy" like the former two.
           | 
           | By far it's my favorite tool to reach for when I need more
           | than just plain vanilla JS.
        
       | littlecranky67 wrote:
       | I'm a sceptic to the claims; most build speedups I've seen come
       | from the bypass of Typescript type checking/compiler errors.
       | Since there is no other competetive compiler to Typescript than
       | the official (and slow) tsc, I think vite works this way too?
       | Getting hot reload and fast page refreshes is nice, but the idea
       | is that if I get a compiler error, I ought to fix it first before
       | I move to the browser to test my code.
        
         | [deleted]
        
       | emptysea wrote:
       | Curious how Parcel stacks up to Vite.
       | 
       | Vite seems to have the Vue community behind it which is pretty
       | larger.
       | 
       | Both have much better performance than webpack, so between the
       | two probably doesn't matter too much.
        
         | rk06 wrote:
         | I don't know much about parcel, but Vite has incredible
         | mindshare.
         | 
         | Except react and angular, all other leading js framework
         | authors are on vite eg: vue (obviously), solid,
         | svelte,astro,qwik etc.
         | 
         | With framework authors siding with vite, it is natural that
         | those framework users will be switching to vite as well.
         | 
         | Vite is gaining popularity in react community as well though
         | not too much because of some issues with commonjs libraries. It
         | is expected to have very bright future.
        
         | EarthLaunch wrote:
         | I found Parcel and Snowpack years ago, before Vite, because I
         | knew an integrated and ESM-based system was the future.
         | 
         | Both were incomplete and buggy, both had tool combinations that
         | they just couldn't handle. I've forgotten the details but from
         | the tickets I was reading, I doubt that's improved.
         | 
         | Vite solves all of that, it's incredibly easy to work with and
         | I never have problems with it. For a fairly esoteric frontend
         | situation, too.
        
       | jb1991 wrote:
       | This is excellent! The frontend ecosystem in general has been
       | very stagnant for years, without much innovation or
       | experimentation. Great to finally see a new library for frontend
       | development come along.
        
       | nchudleigh wrote:
       | Vite is one of the best tools I have started using in the last
       | year. Nearly zero configuration and incredible performance.
       | 
       | Definitely the build tool I reach for by default now
        
       | sandreas wrote:
       | I think sveltekit[1] uses this :-)
       | 
       | 1: https://kit.svelte.dev/
        
         | sk0g wrote:
         | Yeah, and it's a pleasure to use. Really the only issue I ran
         | into was not realising SvelteKit doesn't support all Svelte
         | functionalities, and you have to vet plugins at times.
        
           | acoyfellow wrote:
           | Could you elaborate on which functionality? I've been using
           | SK in production since early beta, I've not run into this
           | (yet)
        
             | sk0g wrote:
             | To be honest I'm not a front end developer, just learned
             | that a few things on GitHub had issues outstanding about SK
             | issues, and avoided them after the first run-in. Massive
             | props to Svelte to allow me to finish my project while
             | actually, somehow, enjoying the front end development
             | portions though!
             | 
             | The one I ran into: https://github.com/BulatDashiev/svelte-
             | slider
        
         | gedy wrote:
         | It does, but fyi vite cli has built in support for Svelte, and
         | you can bootstrap a project really easily if you don't need all
         | the "stuff" that sveltekit provides:
         | 
         | npm create vite@latest my-app -- --template svelte-ts
        
       | pragmatic wrote:
       | I was looking at this recently and it's interesting. But a couple
       | of points.
       | 
       | Webpack 5 is actually pretty easy to configure these days. I have
       | a use case of supporting angularjs with web workers, service
       | worker (full PWA - it's a POS that is built to handle low
       | bandwidth, intermittent connections etc while still providing 90%
       | of functionality in offline mode - lots of indexeddb, local
       | storage and service worker magic) and typescript.
       | 
       | It handles it all like magic. The workers are in typescript and
       | yet they "just work" with shared imports (indexeddb wrapper
       | mostly). Service workers get all your /dist resources added and
       | you can still add any custom code you need - which I do.
       | 
       | Also you can use esbuild with webpack (there's a plug-in of
       | course)
       | 
       | I was dreading using webpack bc my last experience with it in
       | 2015 was not great, but wow, it's really powerful and actually
       | easy to work with.
       | 
       | Also using it for an electron side project and it's also great
       | there.
       | 
       | I have to say, parcel and a lot I'd other bundlers just can't do
       | what webpack handles almost effortlessly.
       | 
       | YMMV of course but webpack 5 is worth a look if you haven't used
       | it lately.
        
       | cod3rboy wrote:
       | I am feeling like this era of frontend javascript is too much
       | focused on tooling and frameworks that developers spend most of
       | their time dealing with complexities associated with them rather
       | than focusing on creating something meaningful and useful.
        
         | dzogchen wrote:
         | Actually, you can just run 'npm init vite', choose a plain js
         | starter, and make something 'meaningful and useful' with an
         | awesome dev server and great bundler once you are ready to go
         | live.
        
         | [deleted]
        
       | bladegash wrote:
       | Really enjoy working with Vite and it works great with React
       | (many think it's geared towards Vue, which perhaps it was at one
       | point).
       | 
       | Made the switch after some frustrating behavior coming from CRA
       | and having zero flexibility with configuration.
       | 
       | As a side note, Vitest is fantastic as well and I highly
       | recommend giving it a try.
        
         | steve_taylor wrote:
         | Last year, I converted a CRA to Vite because CRA wouldn't work
         | in a monorepo. It was such a painless experience and it just
         | worked.
        
           | bladegash wrote:
           | Yep, same! I will say, getting everything playing nicely in
           | terms of TypeScript, ESM, CJS, etc. was a bit challenging on
           | the first go around, but isn't the fault of Vite (at least
           | not entirely).
           | 
           | As an example, if you're used to CRA being setup for you to
           | handle things like images/fonts, you'll probably need a
           | loader (same as webpack). Then you might need type
           | definitions for the loader, the file format (e.g., SVGs),
           | etc.
           | 
           | After getting past the initial configuration hump it's not
           | bad and pretty painless to start a new project.
           | 
           | I just don't want to mislead people into thinking it's
           | entirely painless.
        
         | romanhn wrote:
         | Exactly same here. Scaffolded a small project with Create React
         | App. At one point tried to organize all the config files in a
         | subfolder and ran into the problem of CRA literally hardcoding
         | the location. Was annoyed enough to look at alternatives and
         | Vite was a fantastic substitute that not only provided all the
         | configurability I wanted, but also let me remove all kinds of
         | craft from the project (eg random React and ASP.NET proxy files
         | generated by CRA). It was also fast and way leaner than CRA in
         | terms of dependencies. Quite happy with the outcome.
        
         | agumonkey wrote:
         | Indeed, it never occurred to me to use it with react. Vue
         | vitesse (vite + project template) was so nice it stopped my
         | quest.
        
           | 9dev wrote:
           | And it's from the guy who built Vue - maybe try that out too?
           | You'd be surprised to get the same feeling there :-)
        
             | bladegash wrote:
             | Not who you responded to, but trust me, I would if I could
             | still use Vue professionally to where I could justify the
             | time in my work and/or personal projects.
             | 
             | I was a huge fan of Vue 2 and Nuxt, but the work world has
             | been heavily favoring React for a while now.
             | 
             | Not that everything has to be about work, but just haven't
             | mastered React enough to personally justify the time spent
             | on working with Vue 3.
        
       | marmada wrote:
       | Hey. If you're hear to post about how the web is always changing,
       | and it's so complicated, no one cares. It's been posted 20 times
       | by now _and_ there are good reasons (we build much more
       | complicated webapps these days).
       | 
       | I like Vite. A few things I like:
       | 
       | - Super fast
       | 
       | - Works out of the box (like parcel)
       | 
       | - Even production builds are super fast -- this is a bit of an
       | underrated feature because sometimes things only break in prod
       | builds, so having fast prod builds = more frequent prod tests =
       | better
        
         | j-krieger wrote:
         | People here love to complain about frontend, but the speed and
         | outreach people can have with modern webapps beats desktop
         | applications by a mile. There is a reason billion dollar
         | companies like AirBnB don't use desktop apps.
        
       | barkingcat wrote:
       | I find it really funny that the word "javascript" doesn't appear
       | anywhere on the entire first landing page. You have to click into
       | "Why Vite" and then about 1/2 way into the first sentence, then
       | you see "javascript"
       | 
       | I was wondering "exactly what kind of front end?" C? C++? Swift?
       | iOS front end? some kind of GUI framework? Windows app
       | development?
       | 
       | Modern day Javascript web ecosystem is a nightmare.
        
         | dzogchen wrote:
         | No it is not a nightmare. It is actually quite pleasant thanks
         | to Vite.
        
           | barkingcat wrote:
           | You say that now, but 3 years in the future you'll be posting
           | "Vite destroyed the Javascript ecosystem"
        
             | cmykk4 wrote:
             | With respect, this suggests to me that you haven't actually
             | read about how Vite works. It's not aiming to be just
             | another contender, it sort of positions itself as a "best
             | of both worlds" abstraction layer on other tools, whereby
             | esbuild is used for faster compilation and rollup is used
             | for configurable builds. It's not as drastic of a change as
             | you're making it out to be, unless someone is coming from
             | like a Gulp-based setup or something.
             | 
             | My work uses Webpack 3 and 4 (in a monorepo) and I was able
             | to get Vite up and running on a test branch (as a sandbox)
             | within a day, even though it's using roll-up instead of
             | Webpack and even though our code was pretty old. It
             | compiled in like a few seconds, it was wild.
        
       | dclowd9901 wrote:
       | Anyone tried just swapping this in with their current web pack
       | pipeline? What are the pain points? Is it even possible?
        
       | hsn915 wrote:
       | I just use esbuild with a small script to build things to my
       | likings. It has worked wonderfully and infinitely better than all
       | other build setups I've seen people do.
        
         | akmittal wrote:
         | Vite uses esbuild, it is supposed to make esbuild easier to use
        
         | imetatroll wrote:
         | Second this. esbuild is just enough.
        
       | c7DJTLrn wrote:
       | F*king hell the ecosystem just never stops growing. Vite, Rollup,
       | HMR? What the f*k is all this? Why does building a frontend have
       | to be a titanic project involving a hundred tools including build
       | systems and tree shakers and compilers and whatever else is going
       | on. Web development is an embarrassment and a blight on
       | computing.
        
         | mikewhy wrote:
         | HMR is 6 years old at this point. Rollup is 6-7 years old. At
         | what point should you start to think maybe you've been a
         | reactionary for too long?
        
         | keithnz wrote:
         | Perhaps you should take the time to find out. Many of the
         | things you mention create a development experience that is
         | pretty cool. It allows you to dynamically change your code and
         | instantly see the result. I do backend systems, embedded
         | systems, and have done a lot of native UI apps.... modern web
         | development with things like vite and vue are really quite nice
         | in comparison. The development feedback loop is very quick
        
       | zanethomas wrote:
       | I've been using Vite since it first became available, works very
       | well for me.
        
       | Stampo00 wrote:
       | I know everyone is here to complain about the mess that is
       | "modern" frontend work. But I have to say, I started using Vite a
       | week ago to bootstrap a new project using Typescript, Preact, and
       | Tailwind, and I'm loving it. There is one weird quirk in where it
       | insists the index.html file should be. But if you can live with
       | that, Vite takes care of the details for me and gets out of my
       | way. It also bundles everything exactly how I would have set it
       | up by hand. I think it's weird that it insists its mostly a dev
       | server. It does that well. But it's also a very good bundler with
       | good defaults. I'd recommended it to anyone who just wants to get
       | started, and wants a good middle ground between esbuild and
       | parcel.
        
       | jchw wrote:
       | Vite is kind of nice because it weaves together some more modern
       | tools, but if you're doing something simple, you might be able to
       | just use esbuild directly on it's own. Bonus: if you're writing
       | Go software, you can use esbuild's (slightly cumbersome) Go API
       | directly in your app server and avoid needing to have JS tooling
       | in your serving/building path, just using Node to handle things
       | like JS package management, typechecking, and linting.
        
       | gtm1260 wrote:
       | The negativity about the annoying landing page is fair enough,
       | but vite is actually awesome to work with as a dev! I've been
       | using it as a dev server for sveltekit, its performance claims
       | are very true.
        
       | peter_retief wrote:
       | I have written some information sites in vite and must commend it
       | as the best tool I have used for a very long time.
        
       | zmxz wrote:
       | Incredible amount of negative comments. It takes more time to
       | type all that negativity out than it takes to read about what
       | Vite is and what it does.
       | 
       | Frontend dev here. Vite is amazing. It doesn't take long to get
       | what it does if you try it out (you can avoid reading about it
       | that way).
       | 
       | I won't bother summarizing what it does, the website literally
       | covers it. Reading really became superpower in this day and age.
        
         | weejewel wrote:
         | Writing an objective, clear landing page seems to be a
         | superpower as well.
        
         | systemvoltage wrote:
         | > It takes more time to type all that negativity
         | 
         | Well, good criticism is not negativity, but I'd argue it is
         | positivity.
        
           | mikewhy wrote:
           | I'm not seeing a lot of "good criticisms" here. Just the
           | typical HN curmudgeons complaining about things that were
           | introduced half a decade ago being too new.
        
       | lionside wrote:
       | I switched from CRA to Vite for create-rust-app[1]. If you ever
       | needed to bundle JS/TS in an SSR framework (language agnostic),
       | vite is a great choice :)
       | 
       | [1] https://github.com/Wulf/create-rust-app
        
       | shepherdjerred wrote:
       | Aisde from the typical HN comments of:
       | 
       | * Front-end is a mess; who needs anything other than hand written
       | HTML and jQuery
       | 
       | * This site doesn't explain what this is
       | 
       | Vite is pretty great. It is a huge improvement on webpack and
       | other competitors that I've used. Configuring Vite for the common
       | use case of some front end framework + optional TypeScript + unit
       | testing + hot reloading is something that can be done with a
       | literally just 5 lines of configuration.
       | 
       | At work I switched over a 1000 line webpack script for 40 lines
       | of Vite. Vite is superior in every way compared to webpack (at
       | least as far as my use cases)
        
       | Rapzid wrote:
       | Introduced Vite into our React project but it's still an
       | experimental development option due to some rough edges.
       | 
       | Our project has _thousands_ of SCSS and source files(nearly 10k).
       | 
       | The motivating factors were 5-12 minute startup times for CRA
       | depending on the power of the developers workstations, and
       | equally burdensome builds requiring now over 8GB of Node heap to
       | complete without hitting OOM events.
       | 
       | Really, really convinced this style of tooling is the future
       | however here are some issues we are running into:
       | 
       | * 4s full page refreshes
       | 
       | Much slower that when Webpack finally gets going. If I'm working
       | on something that may require lots full-page loads I'll opt for
       | CRA.
       | 
       | This is in part to do with the sheer number of source files. Part
       | AFAIK they aren't using a strategy such as a Merkel tree to keep
       | track of which import chains are actually invalid and instead re-
       | request every file every reload.
       | 
       | Part is SCSS which is a super, major PITA performance wise on a
       | project of this size. Vite doesn't yet support embedded SCSS, and
       | embedded SCSS doesn't support process reuse so it may not even
       | work well with this dev server strategy.
       | 
       | * HMR objects
       | 
       | Editing certain(mostly non-component) code will cause duplicate
       | class names to be created: MyClass2, MyClass3, and etc. Vite
       | seems to use a different strategy than Webpack which, I believe,
       | use proxy objects.. In any case these can cause "instance of" and
       | other failures that trip people up and send them on wild bug
       | chases.
       | 
       | * Weird optimization requirements
       | 
       | In your project's src importing from folder index files is
       | considered harmful to Vite performance.
       | 
       | When importing from node_modules NOT IMPORTING from the base
       | index is considered harmful to performance!? It will not optimize
       | deep import deps automatically(pre-bundle and browser cache
       | them).
       | 
       | =========
       | 
       | Even though I'm convinced this is the direction of dev tooling
       | I'm not sure Vite will be the winner here. I can't help but feel
       | entire server should be written in a language such as Go, and a
       | better incremental build and _delivery_ strategy needs to be in
       | place. A strategy so that the browser only needs to request the
       | files that have changed while going to cache directly for
       | everything else. Otherwise very large projects will continue to
       | be problematic.
       | 
       | Yeah, lazy loading components but that's not always desirable
       | particularly in single page "apps".
        
       | razzio wrote:
       | I've used Vite in a simple vuejs project and love its simplicity
       | over webpack.
       | 
       | However, debugging Vue3 with hot-module-reload seems to be
       | broken. The moment HRM changes a source file, the line numbers
       | and breakpoints not always line up and breakpoints.
       | (https://github.com/vitejs/vite/issues/5916). The inability to
       | debug properly is not a minor issue so I'm torn to go back to
       | webpack or disable HMR to keep using Vite.
       | 
       | Other than that, the simplification that Vite brings to the build
       | process is sorely needed. I can only imagine how many developer
       | hours have been lost in dealing with Webpack configuration
       | issues. It is ironic that setting up a web development
       | environment is more complicated than building a basic
       | application. Thank you Vite developers for offering relief :)!
        
       | CSDude wrote:
       | It's amazingly fast, cant recommend it enough.
        
       | qiller wrote:
       | Upgrading to Vue 3 and Vite soon, is there a danger in having
       | different dev vs production build tools?
        
       | kossTKR wrote:
       | Working with front end for 5+ years have nearly made me switch
       | careers. There's an absolute onslaught of languages, frameworks,
       | patterns and now also "tools" that never really work in you
       | editor, and you never really grasp before moving on to the next
       | thing.
       | 
       | I think me and my team have spent 90% of our time working with
       | tooling, and all creativity and joy has gone out the window -
       | because you never become a master, an expert og know your way
       | around the codebase before you're suddenly 2 years behind.
       | 
       | It's a shitshow and no one really seems to know what the hell
       | they are doing - even the teachers of this stuff - they just know
       | "how" rarely why.
       | 
       | Way, way too much complexity and abstraction for simple tasks.
       | Some things "should have" become easier with quick scaffolding,
       | auth templates or whatever, but they always only work 95% and you
       | use an endless amount of time fixing the last 5% instead of
       | building creatively.
       | 
       | Vite was the same thing, faster yes, but my VSCODE broke because
       | of the myriad of build tools and plugins on top of each other
       | from older projects.
        
         | martini333 wrote:
        
           | dang wrote:
           | Whoa - we ban accounts that attack others like this,
           | regardless of how dense other commenters are or you feel they
           | are.
           | 
           | I'm afraid you've been breaking the site guidelines in other
           | places too (e.g. with unsubstantive and/or flamebait and/or
           | name-calling comments).
           | 
           | I'm not going to ban you just now but if you'd please review
           | https://news.ycombinator.com/newsguidelines.html and stick to
           | the rules when posting here, we'd appreciate it.
        
         | somenewaccount1 wrote:
         | I can't wait for deno.js to really skyrocket. It solves all of
         | this garbage packaging dependency nonsense.
        
           | hobofan wrote:
           | No, it doesn't. All Deno does by ignoring dependency
           | management is creating a breeding ground for worse dependency
           | management.
        
           | cto_official wrote:
           | was just reading about them, the were trending on github
           | today.. if we want to port an existing typescript project to
           | deno any ideas how complex it would be ?
        
             | GiorgioG wrote:
             | I'd guess it would not be trivial. NPM packages are not
             | compatible out of the box. There are workarounds, but
             | generally speaking it's still (relatively) early days in
             | Deno-land. Having said that, I've been playing around with
             | the Deno Fresh framework and it's been a refreshing
             | experience compared to typical TS based web app
             | development.
        
             | simlevesque wrote:
             | At this point it would almost require a full rewrite. I use
             | it for a new projects. But things like using Vue is really
             | hard, some packages help but they are also buggy.
        
         | wonnage wrote:
         | The saving grace of frontend is that debugging is really easy.
         | You can inspect the actual code of all your dependencies in
         | node_modules, and they're almost always on github too (in case
         | they bundled/minified code). The programs are mostly single-
         | process and single-threaded. The same Chrome devtools you use
         | to debug in the browser are used to debug NodeJS code.
         | 
         | Yes, it's stupid that sometimes you have to set a breakpoint
         | inside a webpack plugin to figure out what's going on, but at
         | least it's an option.
         | 
         | And as other commenters have echoed - you don't have to use any
         | of this stuff. Most of it is short-lived and low-quality
         | anyway. Half the time it's just an excuse for someone to write
         | a blog post for clout. Expertise is as much about filtering out
         | noise as it is digging deep into things.
         | 
         | People complain a lot about bundlers in particular. Bundlers
         | are "just" string concatenation. It's an easily understandable
         | problem with a lot of weird edge cases. So you wind up with
         | bikeshedding and a lot of bundlers and what looks like
         | unnecessary complexity. But there's little payoff to really
         | "learn" a particular bundler. It's more important to learn why
         | bundling is necessary (the Vite FAQ does a decent job of this)
         | and then some of the features that can make it complicated (e.g
         | code transformation). Then you become an expert on the
         | underlying problem of shipping the minimal amount of code to
         | the browser, which isn't going anywhere. You can then
         | understand what differentiates bundler A from B. It's usually
         | not much beyond a simpler config file. Despite all the new
         | hotness that exists today, the outdated Webpack 4 has feature
         | parity with pretty much any bundler out there.
        
         | rvdginste wrote:
         | > ...and you never really grasp before moving on to the next
         | thing.
         | 
         | Then why do you move on to the next thing?
         | 
         | Not a frontend dev, but I notice that a lot of frontend devs
         | seem to be really eager to jump to the next hot thing when it
         | becomes available, even though the thing they are using is
         | still well maintained.
        
           | nazka wrote:
           | And then you have someone down the comment telling him to try
           | the next thing Flutter or whatever. It's a never ending. HN
           | and tech is both full of people like you say and want stable
           | stacks but also full of people wanting to try the new thing.
           | 
           | For me React have been doing all and beyond for me on a dev
           | and business pov and will continues for a log time hopefully
           | a decade. But it's frontend so it's already weird that it
           | stayed that long.
        
           | francisofascii wrote:
           | Unfortunately it is necessary to stay employable. I hope I am
           | wrong, but a react novice might get more interviews than a
           | JQuery expert.
        
             | matt89 wrote:
             | But React is now probably about 7-8 years old. Is it really
             | this shiny new technology that "everyone must jump to"? Yes
             | jQuery devs probably don't get a lot of work right now, and
             | yes you probably should keep up with React itself.
             | 
             | But I don't think that it is necessary to literally switch
             | technology every 1-2 years to keep up, if we can use React
             | (or Vue) which has been stable for a while and is still
             | wildly popular.
        
               | simlevesque wrote:
               | But aren't the React devs of today the jQuery devs of
               | tomorrow ? Meaning that if you keep that same technology
               | forever you will lose relevance in the market.
        
           | mrisoli wrote:
           | Because it's easy money(and as others said, to stay
           | employable).
           | 
           | If someone created a framework yesterday there are few
           | experts, and they won't judge experts by years of experience,
           | if you're a relatively new FE in the job market would you go
           | compete with people with 15+ years of jQuery and 8+ years of
           | React or just take on the next new thing?
           | 
           | If you pickup the latest tooling today by the time it's
           | widespread(like React is now) you're way ahead of the crop
           | and it's quite easy to get some nice pay out of that.
        
           | dclowd9901 wrote:
           | Because being "behind" on front end technologies is a sure
           | fire way of ending up jobless and irrelevant.
        
           | nikodunk wrote:
           | This. As someone who's hung back and not switched to the hot
           | new thing in frontend - I've learned the "old" stuff seems to
           | mature and tends to get better. Look at React, CRA, or Redux
           | Toolkit - they're all so much better (performant, more
           | concise) than the original few releases now!
        
             | mouzogu wrote:
             | i dont think you find words like "deprecated" or
             | "sunsetted" in any field as much as front end websh*t.
             | 
             | react has changed a lot. i mean hooks pretty much is a
             | rewrite or rethink of core concepts. nothing wrong with
             | that per se, just that things just move to fast, there is
             | no respect for long term stability and web seems to have a
             | greater share of shiny new thing contrarian hipsters.
        
               | ketzo wrote:
               | I mean, for one thing, Hooks are more than three years
               | old at this point.
               | 
               | And for another, you can use React without writing a
               | single useEffect(). Class components are still very much
               | a thing!
        
           | croes wrote:
           | FOMO?
        
           | verisimilidude wrote:
           | If we're being really honest, I switch to the next thing
           | because it's fun.
           | 
           | The more official reason to move to the next thing is because
           | browsers are a moving target. Browsers are constantly
           | releasing new capabilities. And the overall population of
           | users is always moving onto newer versions of those browsers;
           | even if that migration lags a bit, it happens. When we can
           | use those newer browser features, we can provide better
           | services to users.
           | 
           | Vite is exciting because it's built on top of the native ES6
           | features that are now ubiquitously supported by most
           | browsers. It's such a smooth ride compared to older tools.
           | The dev experience is great, and the end-user bundles are
           | light. I've been very impressed with it.
           | 
           | I sympathize with your sentiment when it comes to the back-
           | end. I want stable tools there. But until the front-end
           | platform (browsers) is similarly stable, some churn will be
           | welcome to support emerging possibilities.
        
           | monkey_monkey wrote:
           | Because all the upkeep happens on the new shiny toy, leaving
           | the old ones to fester and rot away.
           | 
           | Heaven help you if you need to go back to a site you built
           | for a client 4 years ago and try to make changes now. 90%
           | chance that your build toolchain will be completely broken
           | and fail to work.
        
             | noduerme wrote:
             | This is why I just roll my own and don't use frameworks
             | like React. I've been building and rebuilding apps for
             | clients for 15 years, so basically have my own ways to spin
             | up an app within hours. Yeah, I still use jQuery for some
             | things, who cares if it works?
        
           | skeeter2020 wrote:
           | >> even though the thing they are using is still well
           | maintained.
           | 
           | I think you mean "even IF the thing is still maintained".
           | This is a big IF. Something as ubiquitous as a React app may
           | still work fine after a few years, but try updating or fixing
           | something and you're in for a world of hurt.
        
             | leodriesch wrote:
             | In my experience dealing with the tooling is fine for
             | ongoing projects by just checking for updates every week.
             | 
             | But it is very stressful to update from Webpack 2 to 5 for
             | example. So taking an old project from a couple of years
             | ago and updating the dependencies is not that easy,
             | especially if you were using a lot of the build tools
             | features.
        
               | CaptArmchair wrote:
               | But that's where you have to balance the gain updating
               | the old toolchain against the benefits in your specific
               | situation. Are you going to spend a lot of time on the
               | project, or is it just a few bug fixes? Can you revive
               | the old toolchain? Is the old toolchain churning out good
               | enough production ready assets?
               | 
               | Upgrading dependencies can be a trap. Like, in the past,
               | I've delegated a bugfix that shouldn't take more then an
               | hour or two to a co-worker, only to see them waste an
               | entire day in dependency / NPM hell.
               | 
               | To my mind, there needs to be a compelling case or
               | argument that justifies sinking time in an upgrading
               | exercise.
        
               | jchw wrote:
               | The biggest problems come in when your apps are doing
               | hacky things they shouldn't be doing. This is a common
               | issue with things like Electron, or React Router, and of
               | course, Webpack.
               | 
               | If you are fairly careful and conservative, and lucky
               | enough to be using software _after_ it has matured, I
               | think most upgrades will wind up being pretty uneventful
               | for you.
               | 
               | I'm saying it explicitly: your exception project probably
               | sucked. That's probably why it was tricky to upgrade. It
               | may not have been your fault or even the fault of the
               | people who wrote it. But for example, it was never
               | architecturally a good idea to have Webpack automatically
               | import browserify Node stubs. It was never a good idea to
               | load Node modules from within an Electron renderer
               | thread. Not always your fault. A reasonably well-
               | archirected app usually refactors decently into changes
               | that fix these issues. A poorly architecture app is so
               | fragile it's hard to imagine refactoring anything without
               | something breaking a few miles away. If you have the
               | latter, then no shit that upgrading dependencies sucks...
               | I mean, changing anything else sucks too.
               | 
               | This isn't the root cause of _every_ horror story... But
               | it 's a lot of them
        
         | darksaints wrote:
         | I too find this exhausting. However, to be completely fair,
         | front end was a 100% no-go for me before 2015, and improvements
         | to the language and improvements to the ecosystem have turned
         | it into something that I can deal with occasionally without
         | wanting to murder anybody. ES2016+, better build systems,
         | better package management, typescript, etc., have all made huge
         | strides in front end development.
         | 
         | It could still do without the framework of the month
         | trendiness, but eventually dumb ideas die and good ideas
         | succeed.
        
         | vultour wrote:
         | It's hilarious listening to my friends who do frontend rave
         | about the the incredible framework of the month, every month
         | there's a new one that's supposed to be the last, ultimate,
         | final stop for developing frontends.
         | 
         | Lately it's all about server-side rendering... they managed to
         | reinvent PHP 25 years later with 100x the complexity.
        
           | j-krieger wrote:
           | This is really untrue. The complexity of large PHP projects
           | could get insanely high. _The_ advantage of using SSR in
           | JavaScript is that your entire application speaks the same
           | language as the browser does, so sharing code between server
           | and client becomes incredibly easy.
        
           | dimgl wrote:
           | It's not PHP. It's not even close to being PHP... SSR
           | frameworks are truly impressive pieces of technology that
           | might impress you too if you weren't raging uncontrollably.
        
           | wonnage wrote:
           | I don't really understand these sorts of low-effort comments.
           | You're probably referencing the React Server Components that
           | were recently proposed. React has supported server side
           | rendering basically since its inception. The problem with
           | most existing SSR implementations in any language is that
           | it's a one-shot synchronous process which doesn't allow for
           | out of order streaming. For example, you might want to render
           | a loading state and replace it with content once some network
           | call returns. This used to take multiple requests; you get
           | the initial page, some JS makes the network call, then you
           | might need to download even more JS to render the result. Now
           | you can do it all in one shot with (almost) no JS; the server
           | can stream this entire sequence of HTML chunks in one
           | response.
           | 
           | That's pretty useful and it's not "PHP 25 years later with
           | 100x the complexity"
        
           | woojoo666 wrote:
           | This gets repeated in every thread about front-end tech, and
           | every time people have to repeat the same explanation. SSR is
           | not PHP. SSR allows you to run the same code on client and
           | server. You get to use client-side frameworks, but the page
           | is rendered before it even reaches the client.
           | 
           | If people could try to understand SSR before diminishing it,
           | we could have much more productive discussions. But as of now
           | the frequency of these uninformed comments makes me feel like
           | people who are ignorant about front-end, are somehow proud of
           | their ignorance.
        
           | [deleted]
        
         | [deleted]
        
         | devxpy wrote:
         | Try flutter, its a breath of fresh air!
        
           | finfinfin wrote:
           | Does Flutter still render everything in a canvas? This has
           | been a huge turn off for me.
        
             | cercatrova wrote:
             | Yes, and that's the main reason why I like it. You can do
             | advanced UIs and animations that would otherwise be very
             | annoying in other frameworks like React Native. Plus, a
             | canvas makes it easy to port to other platforms like
             | desktop and web because all you need is the ability to draw
             | pixels on a screen.
        
               | noduerme wrote:
               | aaand we're all the way back to Flash.
        
               | leodriesch wrote:
               | To be fair web content can also be ported easily pretty
               | much everywhere because browsers run almost everywhere.
        
       | dfee wrote:
       | I can't find a vite solution for NodeJS which is disappointing.
       | If anyone has figured out a way to ship the minimal amount of
       | code from a NodeJS monorepo (ideally with web and server code,
       | but generally decoupled) I'd enjoy seeing the solution!
        
         | lioeters wrote:
         | I'd recommend using ESBuild directly. The following article
         | helped me recently to figure out how to build a browser-side
         | library to publish to NPM, as well as bundling a Node.js server
         | to deploy.
         | 
         | Build A Library With esbuild - How to bundle ESM, IIFE or
         | CommonJS libraries with esbuild
         | 
         | https://medium.com/geekculture/build-a-library-with-esbuild-...
         | 
         | ---
         | 
         | I had to figure out a trick for Node side to exclude external
         | modules. In my build script:                 const esbuild =
         | require('esbuild')       const { dependencies, peerDependencies
         | } = require('./package.json')            const external = [
         | ...Object.keys(dependencies),
         | ...Object.keys(peerDependencies)       ]            await
         | esbuild         .build({           entryPoints:
         | ['src/index.ts'],           outfile: 'lib/index.mjs',
         | bundle: true,           sourcemap: false,           minify:
         | false,           splitting: false,           format: 'esm',
         | target: ['esnext'],           external         }),
        
         | somishere wrote:
         | It's possible. I often use vite with multiple build targets
         | (decoupled but with code sharing) .. this can be specified in
         | the rollup config options but my specific build process uses
         | two separate vite configs to resolve some chunking challenges.
         | Everything is parallelised for dev/build in an npm script. From
         | memory there's a bunch of conversations relating to this kind
         | of setup in the GitHub issues.
         | 
         | Edit: vite allows you to specify (e.g. node specific)
         | exclusions/globals in the config, it also allows you to specify
         | a 'library' build if that's what you're interested in .. with
         | named exports, etc.
        
       | QuadrupleA wrote:
       | The frontend world seems to be drowning in its own accidental
       | complexity, with each new framework trying to solve the
       | ecosystem's self-created problems.
       | 
       | I've been developing complicated full stack apps for years with
       | nearly-vanilla JS, CSS and HTML, plus a helping of basic software
       | design skills, and I have no trouble managing complexity,
       | delivering features fast, etc. I've never related to all these
       | problems the frontend world endlessly frets about like state
       | management, build times (I don't use builds), polyfills (I just
       | use whatever raw JS subset is about 97% supported), server-side
       | rendering (just design your app with an intelligent division of
       | labor between client and server), dependency management (minimize
       | them, and understand the ones you use fully so you can adapt them
       | to your needs), etc.
       | 
       | Like this site demonstrates, reasoning for using all this cruft
       | is always vague too - "best practice", "modern", "next gen",
       | whatever. Seriously, the whole frontend ecosystem seems a rube
       | goldberg tower built on pseudo-technical marketing fluff that has
       | everyone chasing their tail and adding more unnecessary layers. I
       | don't get it.
       | 
       | If you're deep in this world, I highly recommend: go a layer
       | down. Try implementing your next feature with and without the
       | library / framework du joir. Can you simplify, remove layers, and
       | still accomplish your goals? How much code is it for each
       | version, including the framework? Is the dependency worth all its
       | baggage, like build times, module incompatibilities, leaky
       | abstractions, loss of control, etc.?
        
         | j-krieger wrote:
         | Your entire answer basically becomes moot since this is not a
         | framework. At all.
         | 
         | This is a build tool, something like a compiler. And it's been
         | writtes by arguably one of the greatest dev in the current
         | generation to get rid of every problem you discribe. There is
         | almost no configuration involved in getting your projects to
         | "just work", which is why people love it.
         | 
         | Give frontend some time. Frontend development, like it exists
         | now, is 10 years old. Backend applications and their
         | architecture have a 30 year advantage.
        
         | christoph wrote:
         | I absolutely agree with you on the surface, as I'm of exactly
         | the same mind. However, I've forced myself to use a few shiny
         | new things on projects over the last couple of years and it's
         | been a mixed bag. Some new frameworks like Vue have absolutely
         | shrunk development times for certain types of projects by a
         | serious order of magnitude, as we are now worrying way less
         | about state and writing far less code overall. Mutating certain
         | changes just cascades down without us worrying too much and
         | writing loads of code to handle those changes/updates. Hot
         | reloads alone have easily saved countless development hours.
         | 
         | Other times, I just feel like I've been fighting a framework
         | for hours to achieve something that really should have only
         | take a few minutes.
         | 
         | IMO, it's about having as many weapons in your arsenal as
         | possible and always selecting the most appropriate for the task
         | at hand. You can only really do this if you have a good broad
         | working knowledge of as many tools as possible, to understand
         | their unique strengths and limitations.
         | 
         | Typically I just avoid the latest shiny new thing entirely for
         | at least a couple of years until it's stabilised somewhat. I
         | got burnt early adopting Swift and spending countless
         | unbillable hours updating thousands of LOC every time Apple
         | seemed to break the entire thing with each new release.
        
         | mmcnl wrote:
         | Apparently you have never built a webapp that is more ambituous
         | than a simple website. The superpower of "modern" frameworks
         | (Vue and React are both 5-10 years old) is abstracting away
         | from the DOM to be able to define your view as a function of
         | state. Vanilla JS doesn't help you in that regard.
        
         | sachinraja wrote:
         | If anything, Vite is less complexity. It's much easier to use
         | and configure than any other build tool I've used. If you don't
         | have a need/want for Vite, that's fine, but others enjoy using
         | it. I am not fretting over the next build tool, I'm simply
         | switching to something I prefer to use.
        
       | dazhbog wrote:
       | "Get ready for a development environment that can finally catch
       | up with you."
       | 
       | Actually I'm the one trying to catch up with all the front-end
       | changes in the last 10 years..
        
       | darkest_ruby wrote:
       | Despite all negative comments, I (and my team) switched to vite
       | for create-react-app about two months ago, and never looked back.
       | Builds take seconds, developer experience is amazing.a.m.a.
        
         | ta-run wrote:
         | Not CRA related, but is it as simple to move an existing Vue2
         | project to Vite?
        
         | dimgl wrote:
         | Yep, same. Vite is absolutely incredible. It's a shame that
         | frontend is so looked down upon, but I get it.
        
         | dclowd9901 wrote:
         | How big is your application? What level of legacy are you
         | dealing with? Do you also have broccoli as part of your build
         | process? What did you switch from? How are you consuming your
         | build? Do you do server side rendering? Do you build for UI
         | testing? What's it like building for Jest? Have you had to
         | write any custom plugins?
        
         | hardwaregeek wrote:
         | You may notice that all of the negative comments are around
         | superficial nitpicking of the website copy or general bemoaning
         | of the state of front end development. The first is sort of
         | useful in a minor way; the second is pretty useless and
         | generally tired. Vite is a great tool that I'd recommend for
         | anyone who wants to speed up their front end build setup.
        
           | monkey_monkey wrote:
           | > the second is pretty useless and generally tired.
           | 
           | Is it really useless though? I wish the front end community
           | tried to make existing things better instead of reinventing
           | the wheel every year and causing immense fragmentation,
           | especially for something like the build toolchain.
        
             | gedy wrote:
             | Why can't the "back end community" agree on a single server
             | side language and database and compiler? Gee so much churn!
        
               | [deleted]
        
               | monkey_monkey wrote:
               | We both know those aren't even close to the same thing.
               | 
               | All this grunt->gulp->webpack->vite->'the inevitable
               | replacement for vite' are really achieving is finding
               | slightly different ways of doing the same thing.
        
               | bilalq wrote:
               | All this make->ant->maven->gradle->'the inevitable
               | replacement for gradle' are really achieving is finding
               | slightly different ways of doing the same thing.
        
               | mikewhy wrote:
               | "all this monoliths->microservices are really achieving
               | is finding slightly different ways of doing the same
               | thing"
               | 
               | "all this python->go are really achieving is finding
               | slightly different ways of doing the same thing"
               | 
               | "all this relational db->document stores are really
               | achieving is finding slightly different ways of doing the
               | same thing"
        
             | hardwaregeek wrote:
             | Fragmentation is political though. You can't really solve
             | this issue unless someone or something is forcing people to
             | coalesce around one tool. Webpack was great but it had
             | noticeable flaws that allowed tools like esbuild/rollup/swc
             | to gain market share. And it's not like webpack can easily
             | do what esbuild did, I.e. rewrite in multithreaded Go. If
             | you can propose a way to get everybody on the same tool, by
             | all means, let's do it.
             | 
             | What annoys me about this discourse is that anybody in the
             | front end world knows this is an issue. People aren't
             | contributing anything by complaining about it.
        
             | wonnage wrote:
             | > I wish the front end community tried to make existing
             | things better instead of reinventing the wheel every year
             | and causing immense fragmentation, especially for something
             | like the build toolchain.
             | 
             | This is simply a false statement. Chrome increases its
             | dominance every year, which actually makes it a lot easier
             | to write frontend code, but that isn't necessarily
             | "better".
             | 
             | In other areas:
             | 
             | - Typescript has been a huge boon to the ecosystem and is
             | widely adopted
             | 
             | - Babel is the standard for transpiling code and has
             | allowed for all these compile-to-JS projects to exist
             | - ESBuild/SWC exist if you want to do things faster and
             | less flexibly, but they're still a minor part of the
             | ecosystem
             | 
             | - React has existed for nearly a decade and continues to
             | enjoy regular updates and an enormous community
        
         | edvards wrote:
         | is it compatible with what webpack has
        
           | mmis1000 wrote:
           | Yes and No.
           | 
           | Yes, it has the same ability like webpack, which allow you to
           | plug the logic you need into the system and change the
           | results to fit your requirement.
           | 
           | No, the config file or the plugins isn't compatible, because
           | it is based on rollup. So you need to find rollup plugins
           | instead.
        
             | aidos wrote:
             | But when you make the switch you'll discover that you don't
             | need any of the config because it's all pretty well up and
             | running out of the box.
        
       | synergy20 wrote:
       | This is an excellent tool, beats webpack to ashes.
       | 
       | Evan You did this after his vuejs work, it's kind of like Linus
       | did git after his linux kernel work, well, on a smaller scale.
       | Per Linus, he did git to approve that he is not an accidental one
       | time genius.
        
         | simlevesque wrote:
         | And now he's working on Volar, to make tooling more awesome.
        
       | haolez wrote:
       | Its source code is quite interesting. It's a medium-sized
       | TypeScript project and it doesn't look like a C# or Java ripoff.
       | Well done!
        
       | Escapado wrote:
       | Just finished migrating the react project at work to vite and
       | vitest after the pleasant experience I had with it in a private
       | project. It was surprisingly little effort and is _so_ much
       | faster and easier than the webpack mess we had before. I wonder
       | if at some point they'll ditch rollup and go full esbuild.
       | however Dev Server cold starts went from 34s to 0.3s and build
       | times from 1m20s to 9s so I won't complain!
        
       | [deleted]
        
       | canyonero wrote:
       | A lot of folks associate Vite with Vue or React. But the ease of
       | use and overall dev experience in a vanilla TS/JS and web
       | components is fantastic.
       | 
       | IMO when paired with Vitest, the setup feels powerful, modern and
       | lean. Would recommend.
        
         | 9dev wrote:
         | Can second that, I use Vite to bundle the assets for a static
         | site, and it... just works. Frontend tooling like I expect it
         | to.
        
         | akuji1993 wrote:
         | I also feel like this is the actual use case of Vite. Don't
         | want anything else but be able to roll a static site together,
         | while using some vanilla html, css and js with a few assets
         | attached.
        
       | omarhaneef wrote:
       | Almost all the comments are from those who have tried it. (And
       | most people apparently love it).
       | 
       | Why?
       | 
       | Because it never tells you what it does. It's "front end tooling"
       | which could be anything from a new JS target language to a
       | framework to something else.
       | 
       | The features don't help: it's fast. That could apply to anything.
       | 
       | It's only when they talk about the alternatives like ESBuild and
       | webpack that I get a sense of what it does. That's several clicks
       | in to figure it out.
       | 
       | Please put what the thing does front and center.
        
         | mgomez wrote:
         | The "Why Vite?" button on the homepage is fairly "front and
         | center" to me and is only a single click away:
         | https://main.vitejs.dev/guide/why
        
           | jollybean wrote:
           | It's still not concise enough. It's a long article you have
           | to read to figure out what you are reading about.
           | 
           | "WTF IS IT?" is an endemic problem with marketing and
           | startups.
           | 
           | Marketing is a skill, that many people in marketing so often
           | don't have, and lot of leaders fail to grasp. It's so sad.
           | 
           | Imagine losing 1/2 of your potential uptake because of poor
           | choice of words.
        
             | thr0wawayf00 wrote:
             | I think is more of an indictment on the javascript
             | ecosystem generally, because there's so much more to
             | building an app that runs JS than just your standard
             | MVC/MVVM/pick-your-pattern web frameworks.
             | 
             | You have to deal with various layers of transpilation on
             | your JS, styles and assets and that all needs to be
             | flexible enough to fit a wide set of use cases for the
             | community. It's gotten to the point you need to be an
             | expert in all of the different ways you can bundle and
             | deploy a JS app in order for the jargon associated with
             | these tools to make any sense.
        
               | jollybean wrote:
               | You're right that JS is a mess, but this is not a JS
               | problem, it's a tech problem.
               | 
               | I see it over, over and over again.
               | 
               | I see young people pitching their tech and I have no
               | f*ing clue what they are talking about.
               | 
               | I would say >50% of web sites don't do a very good job of
               | explaining anything.
               | 
               | Vercel is one of the worst offenders.
        
           | XorNot wrote:
           | The front page is right there and could've included the copy
           | "Next generation replacement for Webpack" and I would've
           | known exactly what it's for.
           | 
           | Literally one sentence.
        
             | brundolf wrote:
             | It's not really a correct sentence though
        
               | Volundr wrote:
               | Isn't it? I use it and it's not clear to me what's
               | incorrect about it.
        
               | brundolf wrote:
               | It's too imprecise:
               | 
               | - People might interpret that as "drop-in replacement for
               | webpack", which is definitely not true
               | 
               | - Even as just "a replacement for webpack"; Webpack and
               | Vite have a lot of overlap, and it makes sense to compare
               | them, but I think there are too many asterisks and
               | nuances to say they're equivalent, in official materials,
               | unqualified
        
               | athammer wrote:
               | Rather imprecise then have people confused of what it
               | does - especially when the confusion could be fixed by a
               | sentence.
               | 
               | Just have a hyper link that directions to a comparison
               | page explaining the nuance. Even without the hyperlink I
               | wouldn't assume people would think it's a 1:1 clone drop
               | in replacement. People don't just drop in a new tool
               | without research and comparing it against their new tool.
        
               | [deleted]
        
         | sascha_sl wrote:
         | It's in the first section when you click the one colored button
         | ("Getting Started") on the front page:
         | 
         | Vite (French word for "quick", pronounced /vit/, like "veet")
         | is a build tool that aims to provide a faster and leaner
         | development experience for modern web projects. It consists of
         | two major parts:
         | 
         | * A dev server that provides rich feature enhancements over
         | native ES modules, for example extremely fast Hot Module
         | Replacement (HMR).
         | 
         | * A build command that bundles your code with Rollup, pre-
         | configured to output highly optimized static assets for
         | production.
        
           | somenewaccount1 wrote:
           | You are repeating the feedback "...when you click...". Get
           | rid of the click. Landing page should say what it does. If
           | the author doesn't know or accept feedback on this website
           | 101 topic, I doubt they revolutionized much elsewhere.
        
         | raverbashing wrote:
         | Yeah. I couldn't think of a more generic name than "Front End
         | Tooling"
         | 
         | And next week there will be yet another "revolutionary" front-
         | end thingamajig.
         | 
         | Edit: the "why" page mentioned by the sibling comment actually
         | explains it
        
         | exhaze wrote:
         | They actually do right in the hero section of the landing page.
         | For me:
         | 
         | - fast (very important) - Fully Typed APIs (very important)
         | 
         | Just those two points would convince me to try it and I can see
         | it right away on the landing page.
         | 
         | At my company, I looked at Vite 6+ months ago and decided it
         | doesn't make sense for us, yet, because of some specific
         | tooling gaps, but it's a tool that I consider "cutting edge" in
         | the frontend tooling world. I think they're doing just fine and
         | their page doesn't have any major issues with their copy. Do
         | you actually do frontend dev?
        
           | jollybean wrote:
           | ?? 'fast' and 'fully typed APIs' do not explain anything at
           | all.
           | 
           | Those are completely generic descriptors.
           | 
           | Those are arguably 'differentiators' to the problem they are
           | solving, but they don't first explain the problem they are
           | solving.
        
             | exhaze wrote:
             | > they don't first explain the problem they are solving
             | 
             | I think you're right about this and the "hero text" on
             | their landing page should explain that in one crisp
             | sentence. I imagine the authors of the project just aren't
             | good at this stuff so hope they read this thread and refine
             | the messaging.
        
               | jollybean wrote:
               | It doesn't need to be in the 'hero text' it just needs to
               | be somewhere.
        
           | quest88 wrote:
           | What is cutting edge about it? What gaps is it lacking, and
           | why not put thodr in more established tools? Basically, what
           | problem is this solving and way throw out years of experience
           | in the other tools?
        
             | sachinraja wrote:
             | Vite does not throw out any experience. It builds upon
             | Rollup, esbuild, and other existing tools.
             | 
             | There's a great page on how it's cutting edge here:
             | https://main.vitejs.dev/guide/why.html. I suggest you try
             | using it to see for yourself.
        
             | Rapzid wrote:
             | Why Vite explains this all
             | https://vitejs.dev/guide/why.html
        
               | jollybean wrote:
               | Why would anyone read a long-winded technical article
               | before they even know what they are about read about?
               | 
               | "We have some amazing fast tech, that will make your life
               | better -> read our white paper! We have good APIs"
               | 
               | Tell people what it is first, roughly what it's for, then
               | the benefits. _Then_ the article.
        
         | chrisan wrote:
         | I think you are being a bit disingenuous to suggest it could be
         | a framework. Is there a framework or JS target language project
         | you are aware of that references itself as "front end tooling"?
         | 
         | I wanna say it's been a decade of front end build tools that
         | have come and gone (or stayed.. we still use a grunt file from
         | 2013) and they all do more or less the same things a front end
         | dev needs.
        
       | nikolqy wrote:
       | This is actually really impressive. The documentation site is
       | insanely fast which is usually a sign that it's a well performing
       | framework.
        
       | candiddevmike wrote:
       | I'm a happy vite user, but it troubles me when I think about how
       | complicated everything it abstracts has become. It uses rollup
       | for some things, esbuild for others, workbox for my service
       | worker... I switched from webpack to it, and while my config is
       | certainly less complex, I at least could tell you what webpack is
       | doing. Vite is magic.
       | 
       | Can I just use esbuild yet?
        
         | qbasic_forever wrote:
         | You can totally just use esbuild, it is extremely well
         | documented and easy to grok. It's very easy to embed in a go
         | app too, but you don't have to do that or be a go programmer to
         | use it (they put it on NPM and gave it a super basic CLI). The
         | docs are great: https://esbuild.github.io/getting-started/
         | 
         | If you're just bundling JS, transforming typescript, maybe
         | doing JSX, etc. then it's just a simple esbuild CLI command to
         | do it. Toss it in a makefile or your CI tooling and you're
         | done.
        
         | rglover wrote:
         | > Can I just use esbuild yet?
         | 
         | Yes. esbuild works great. I use it in my own full-stack
         | framework [1]. Builds take < 1s, even for big projects. It's a
         | really impressive tool.
         | 
         | [1] https://github.com/cheatcode/joystick
        
         | exhaze wrote:
         | I agree with your sentiment. It's magic until it isn't. When
         | something breaks, you need to often need to dig into the
         | implementation and understand how everything works. This
         | becomes harder and harder when there are more and more layers
         | of code and libraries, many written by completely different
         | people. Seems like frontend is still going in this direction of
         | "magic > simple". I wonder when we'll reach some point where we
         | see a dramatic shift.
        
         | sampullman wrote:
         | I think Vite is waiting for code splitting and plugin support
         | in esbuild.
         | 
         | It does seem like magic sometimes, but the the code is
         | relatively straightforward. It's not too complicated to dig
         | into to the internals if you're curious about how specific
         | configuration works under the hood. With Webpack I never really
         | felt that way, but maybe it's some kind of subconscious bias
         | from struggling so often with massive configs.
        
           | candiddevmike wrote:
           | Code splitting issue:
           | https://github.com/evanw/esbuild/issues/16
        
             | Rapzid wrote:
             | Hard to get a feel for if that will ever land.
        
           | aidos wrote:
           | Thing is, I did dig into the webpack code after having the
           | watcher not reloading with code changes. I can't recall the
           | details but there were several different packages that were
           | thin wrappers around each other and ultimately inotify (or
           | something at the bottom). One of those wrappers was silently
           | hiding the error about not having enough watcher available at
           | the file system level. I was not impressed with what I found.
        
         | christophilus wrote:
         | I just use esbuild. If your use case is simple enough, it's
         | totally fine.
        
       | dsjfladjsfkl wrote:
        
       | krinn_silver wrote:
       | For anyone interested, these are the docs for the upcoming 3.0
       | release. https://vitejs.dev is for 2.x, which is the current,
       | released version.
       | 
       | The sites are largely similar. Other than features that have
       | changed, the major differences appear to be aesthetic.
       | 
       | I'm looking forward to the v3 release.
        
       | jbrooksuk wrote:
       | We (Laravel) have just switched the frontend tooling from Laravel
       | Mix (a webpack wrapper) for Vite.
       | https://laravel.com/docs/9.x/vite#main-content
       | 
       | The speed gains are super impressive from Vite.
        
         | ksec wrote:
         | Even if I have no interest in Vite, but if laravel is using it
         | as default, that is saying something. May be Rails should take
         | a look as well.
        
           | nickjj wrote:
           | > May be Rails should take a look as well.
           | 
           | I don't know what's involved with Laravel's front-end stuff
           | but Rails is using https://github.com/rails/jsbundling-rails
           | which lets you pick whichever front-end tool you want to use
           | that's supported (esbuild + webpack + rollup at the moment).
           | You're no longer bound to a specific tool that's been
           | modified to work with Rails like the old Webpacker, instead
           | you can use the native tool with its native configuration.
           | Although DHH has already given an opinion on not adding Vite
           | support in https://github.com/rails/jsbundling-
           | rails/issues/25#issuecom..., but there is third party support
           | for it at https://vite-
           | ruby.netlify.app/guide/introduction.html.
           | 
           | Technically the Rails default is not to use any of that and
           | instead you can use a Node-less import maps solution
           | (personally I've gone with esbuild because there's certain
           | things you can't do with Tailwind's pre-built binary).
           | 
           | esbuild with Rails 7 is extremely easy nowadays. It's pretty
           | much running a single esbuild command with a couple of flags,
           | there's not even a config file you need to mess around with.
           | 
           | They did the same thing with css with
           | https://github.com/rails/cssbundling-rails, there's tailwind,
           | bootstrap, bulma, postcss and dart sass that works out of the
           | box all with their native configuration.
           | 
           | It's the best of both worlds. You have flexibility in being
           | able to pick whatever you want but Rails pulls it all
           | together to make using them easy without breaking away from
           | using the native tool's configuration.
        
         | config_yml wrote:
         | I think Rails should have done the same, vite_ruby is amazing.
         | Thankfully it's easy enough to replace the current options,
         | which feel a bit half-hearted.
        
           | gedy wrote:
           | It feels like DHH really doesn't want this tooling at all in
           | Rails, but did so reluctantly because so much view tech and
           | mindshare had moved to the client.
        
             | redbar0n wrote:
             | https://world.hey.com/dhh/rails-7-will-have-three-great-
             | answ...
        
           | yeskia wrote:
           | esbuild through jsbundling-rails is very quick too.
        
         | porker wrote:
         | Interesting you've made the change. Does that mean that Vite
         | source maps for TS/JS and CSS are now up to scratch?
        
       | jijji wrote:
       | how does this benchmark against doing back end development with
       | any language and pushing vanillajs (standard javascript) to the
       | browser? whats the big difference and why should anyone want to
       | make this more abstract/complicated? is it trying to reduce
       | development time?
        
         | cyco130 wrote:
         | Plain JavaScript is of course faster. Not doing something is
         | always faster than doing something. But highly interactive web
         | apps have some problems that need to be addressed:
         | 
         | First is syntax extensions: TypeScript (a strictly type
         | JavaScript superset), JSX (a syntax extension for describing
         | DOM nodes popularized by React) and special template syntaxes
         | of other UI libraries/frameworks like Vue and Svelte need to be
         | processed before being sent to the browser. You may also need
         | processing to iron out some of the incompatibilities between JS
         | engines but it's less important nowadays since the IE died.
         | 
         | The second problem is the sheer size: Highly interactive web
         | applications have lots of moving parts. For example at work, my
         | company's product's frontend code contains 4709 modules,
         | roughly 3/4 of which are 3rd party libraries. At this scale you
         | need some level of optimization (like eliminating unused bits
         | of the libraries) and the ability to split the bundled code
         | into chunks depending on what pages they are used.
        
         | LtWorf wrote:
         | I'd also like to know.
        
       ___________________________________________________________________
       (page generated 2022-07-03 23:00 UTC)