Support Webpack #378
Comments
Here's my position, which I would rather not reiterate endlessly: meteor/meteor#10811 (comment) The "other perks" you propose are tiny—and relatively easy to implement, given the will and the resources—compared to the monumental task of replacing Meteor's build system with Webpack, which would leave Meteor a pale shadow of what it is today. |
Here's one of my earliest on-the-record explanations of why Meteor does not use Webpack: https://forums.meteor.com/t/why-is-the-meteor-install-1-3-api-better-than-webpack-in-meteor/14480/3 In short, you're welcome to hack together something that works for you, but hacks don't scale to an entire community. A framework like Meteor has to work for everyone who uses it, in every case. |
Hey @morloy, while I can appreciate benjamin's stance on this regarding the entire Meteor community, the fact is having HMR and near-instant rebuilds would completely transform our developer experience, and literally improve our bottom-line. It is by (very) far our biggest pain, so I'd love to see a starter repo from you! |
I think this is the main issue. How do we get more folks involved with this aspect of Meteor? I've been around for a while, and I still see that area as opaque compared with WebPack. This might and probably is my own fault, but it might also be a non-technical (or less technical) area to look at to see how we can get more folks involved, and help get the PRs flowing. |
I found this an interesting quote as well. We know Tiny has the resources, so... Is the will the problem? 🤔 |
We're working on a concept how to do HMR in Meteor, but something else that keeps pointing to webpack is multiple build targets. Is there a workable way at the moment (or planned) to support building multiple bundles out of the one repo of a meteor project? |
@CaptainN If you're interested in working on (re)build performance, this document still holds up, even though it hasn't been updated in a while, and I'm sure you already know a lot of it: https://github.com/meteor/meteor/blob/devel/tools/PERFORMANCE.md For anyone interested in hot module reloading, I would gently suggest that replacing individual modules at runtime is a deeply flawed programming model that only sort of works in narrow cases (such as replacing a module that only exports a React component), because no one ever goes to the trouble of defining I would also point out that Meteor's client refresh strategy, which reloads all of your CSS and JS without reloading the page or restarting the server, improved greatly in Meteor 1.8.2 (though it does require that you have the |
@yorrd Meteor already does build multiple bundles, without any special configuration:
… so I'm assuming you mean user-configurable bundles that can be loaded from separate URLs? |
That is tracked in: #19 |
@benjamn @mitar yes, I'm talking about 100% custom build targets and yes, that's already tracked. Just wanted to reiterate. We're thinking about potentially using this for building only parts of the repo into a microservice according to some biased rules we have here. Is there a better way without user defined build targets? Would love to see this being advanced |
With some delay, here it is: https://github.com/morloy/meteor-webpack-starter (the approach is a bit rough, though) |
At Ledgy, we’re running Meteor with a custom
webpack
build for the client bundle. It’s a big hack, but it works and greatly improves our developer efficiency.After looking at the new Meteor Roadmap, I noticed that we have already solved most of the points on that list:
Other perks that made it worth to switch for us:
unsafe-eval
)node_modules
(svg
country flags in our case)Our approach launches both, Meteor and the
webpack-dev-server
. The dev server handles client rebuilds and HMR, whereas Meteor serves just the “backend”. The full approach is demonstrated in meteor-webpack-starter.Looking forward to Meteor, it might make sense to embrace webpack as the default bundler. Re-implementing all of the above features looks like a lot of work. Maybe with some tweaking, it is possible to use webpack in a “zero-config” approach.
The text was updated successfully, but these errors were encountered: