|
| MintsJohn wrote:
| Could be nice but I'll be avoiding parcel like the plague after
| being confronted by its complete lack of maintenance of parcel v1
| while v2 is in beta, and not the working kind of beta, the broken
| kind, while the solution to old problems is "use parcel 2"
| (https://github.com/parcel-bundler/parcel/issues/5695
| https://github.com/parcel-bundler/parcel/issues/5294) . In the
| end I replaced parcel with webpack, less sexy but it's kind of
| the standard.
| dmix wrote:
| This is why it's dangerous using cutting edge software. All in
| all if they have a small team I'd also point them to v2 for a
| fixed problem.
|
| Rather than backport to some beta version.
|
| (Not giving Parcel zero blame in how ready they present
| themselves).
| rowanG077 wrote:
| Both issues you linked are about upgrading to newer versions.
| For these kind of issues saying use the new version is
| completely fine. There were no security risk. No bug that
| something essential isn't working. It literally please update
| the software so a new version of some dependency is supported.
| I would have done the same.
| maxwellwhite wrote:
| > Could be nice but I'll be avoiding parcel like the plague
| after being confronted by its complete lack of maintenance of
| parcel v1 while v2 is in beta, and not the
|
| You beat me to it here; it's a shame. That was my experience,
| too.
| jjeaff wrote:
| Ya, we are having the same problem. V1 has some broken parts,
| but so does V2 and documentation is sparse.
| Baconinus wrote:
| There's a roadmap section saying explicitly that they're not RC
| yet:
|
| https://v2.parceljs.org/blog/beta3/#roadmap
|
| So it was expected that they would be breaking stuff on their
| way. I would rather say "I'll keep an eye on Parcel until it
| becomes stable".
| Omin wrote:
| This information shouldn't be hidden in some document, it
| should be one of the first things they tell you about in
| their README and through their versioning (0.1 and 0.2
| instead of 1.0 and 2.0).
| [deleted]
| devongovett wrote:
| Sorry about that. It's difficult to maintain effectively two
| large open source projects like this simultaneously, especially
| since this is a side project for most of us. We've probably
| dropped the ball a little, especially since v2 has taken a long
| time to build. But the good news is we are getting very close.
| Docs and migration guides are our main priorities next.
| andrewmcwatters wrote:
| You don't have to be sorry, you're providing a high quality
| open-source product for free. It just is what it is.
|
| Addendum: I manage a very small open-source product
| (https://www.planimeter.org/grid-sdk/), and when you're
| creating something that competes with an established
| incumbent, all you can do is your best and focus on the most
| impactful features. Individuals like the one above saying
| things like, "I'll be avoiding parcel like the plague," is
| really disheartening, but try and focus on their concerns
| more than the actual words they use.
|
| Frustrated people are a goldmine for feedback that many
| projects simply do not receive. Take it in stride, know that
| you have something others do not, and use it to your
| advantage. It can be hard to separate your feelings from the
| words used, but there are diamonds there.
| eloff wrote:
| That's a healthy attitude, I'll try to remember that one
| next time I get harsh feedback.
|
| It's tough to separate my ego from my work.
| swyx wrote:
| for what its worth i think adobe pays devon to work on
| tooling (parcel and react aria|spectrum) somewhat full time
| and he even has a team around him. but no doubt its just
| extraordinarily hard to do regardless
| devongovett wrote:
| I am paid to work on react-aria/spectrum. Parcel is a
| side project.
| swyx wrote:
| thats... just incredibly impressive. hats off!
| danenania wrote:
| Great comment. I think this applies for pretty much all
| products or projects, especially in their early stages.
| There will always be people who don't get it or have
| different priorities. It's ok. When I showed people early
| versions of EnvKey[1], it felt like half loved it and half
| thought it was completely pointless. /shrug. At the time I
| found it discouraging, but now I see that getting even a
| single person to genuinely love what you've built is a
| major accomplishment and a really good sign that you're on
| the right track.
|
| If you can find one, you can find ten. If you can find ten,
| you can find a hundred. And so on.
|
| It's also extremely important to remember that the opposite
| of love is _not_ hate, negativity, or criticism. It's
| indifference. Harsh critics can become some of your best
| users /customers/advocates if you're able to learn from
| them and win them over.
|
| 1 - https://www.envkey.com
| MintsJohn wrote:
| Don't sweat it, in hindsight the tool just isn't for me
| (though it was great while it suited my needs). I'm affraid
| one reason for these issues is that parcel tries to do
| everything at once with as little configuration as possible.
| When it works: great. When it doesn't: not-so-great.
|
| Sure the out of date dependancies thing could be seen as a
| problem with post-css plugins that require a newer version,
| but the unfortunate fact is that in webdev land, everything
| seems to evolve at a breakneck pace, foregoing backwards
| compatability. And when some part doesn't match, the
| buildtool suddenly becomes unusable. (webpack is way less
| easy to setup, the flipside is you can for example choose
| your postcss version)
| aranchelk wrote:
| This looks very promising. Parcel is currently the slowest part
| of my build process, compiling to JS and running tests is an
| order of magnitude faster. Regardless I've found Parcel v1 to be
| very useful and entirely worth the wait time.
| Kaze404 wrote:
| The biggest upside of Parcel to me is not speed (though that's a
| nice bonus). What I like the most about it is the fact that
| literally all I need to use it is run `parcel public/index.html`
| and it'll figure out the technology I'm using and just work.
|
| Both in React and Elm, it's made the friction of starting a new
| app much more tolerable, considering now I don't need to bring
| all the baggage that `crate-react-app` and the likes carry. Thank
| you!
| alephu5 wrote:
| I used it when I was getting into frontend development, after
| years in the backend, and loved parcel for this reason. Webpack
| struck me as lunacy.
|
| Unfortunately nowadays I work with create-react-app or Gatsby
| because parcel gives me huge bundles, or breaks with tree-
| shaking on.
|
| Really excited about parcel 2 though, I tried the alpha and it
| didn't work for me but hopefully this does.
| bionhoward wrote:
| It's amazing how useful graphs are
| astraloverflow wrote:
| It's so encouraging to see esbuild and swc grow in popularity,
| along with the lightweight dev build vs full production build
| approach. I made the switch from Parcel v1 to vitejs recently on
| some personal projects and seeing how fast it starts up and
| processes changes still has me feeling excited. I wonder how many
| other frontend tool would be good fits for being written in rust
| or go.
|
| And how long before this approach becomes the de facto industry
| standard?
| Cu3PO42 wrote:
| I'm always happy to hear about performance improvements to JS dev
| tooling. In recent years significant improvements have already
| been made, but it's still... slow.
|
| However, I have concerns about using Rust here. Not because it's
| Rust specifically, but because it means yet another native
| dependency. I've done my best to eliminate any native code from
| projects because they would always cause problems sooner or
| later. Mostly later when coming back to an old project. Are there
| any plans to optionally ship the compiler as WASM to avoid this?
| devongovett wrote:
| We will have a WASM build, yes. Mainly for running in the
| browser or on platforms we don't build for. In our tests so
| far, it is significantly slower though (e.g. ~30%) so it's a
| tradeoff.
| tanaypingalkar wrote:
| Why you have concerns with native dependencies, it is just a
| transpiler and a dev dependencies. How it affect your project?
| thiht wrote:
| I don't know if it's just me but I find migrating from Parcel 1
| to 2 exceedingly hard and frustrating. I tried a few times for
| the previous betas, and just spend 2 more hours trying and still
| failed.
|
| I'd love to finally benefiting from tree shaking and faster build
| times but I can't get anything to work. I hope they'll improve
| for the stable version, because Parcel 1 promise was that it just
| magically worked, which it did! I'd hate for Parcel 2 to regress
| on this side.
| danielEM wrote:
| Used parcel for quite some time, but switched some time ago to:
| https://esbuild.github.io/
|
| Wondering how new parcel performs against esbuild?
| sunsetSamurai wrote:
| Hi, I'm kinda new to the web development world, do you have a
| guide on how to set up esbuild to compile and minimize a
| project built with typescript and sass?
| ianschmitz wrote:
| I wouldn't recommend setting it up yourself. Try Vite
| instead.
| mszcz wrote:
| Even as an exercise to understand how it works?
| mwcampbell wrote:
| > ~10x faster without Terser, and ~3x faster when minification is
| enabled
|
| Any plans to replace Terser with something in Rust?
| devongovett wrote:
| Indeed. There is currently an SWC minifier project that is in
| progress. The maintainer of Terser is helping with it, and the
| Parcel team will likely help with that as well after we ship
| the stable Parcel 2 release. :)
| httgp wrote:
| Great news, but that PR just got merged a few hours ago!
|
| https://github.com/swc-project/swc/pull/1302
| jokethrowaway wrote:
| Wow, parcel is already insanely fast (coming from webpack), can't
| wait to see even more perf improvements.
|
| Amazing job
| DrBenCarson wrote:
| Awesome to see progress on this front making it into tools devs
| use day-to-day.
|
| Babel compilation is, by far, the slowest part of our full-stack
| build. That includes turning java source into jvm bytecode.
| eberkund wrote:
| So is this another independent JS compiler implementation
| comparable to ES Build?
| astraloverflow wrote:
| Yes, Parcel is now using SWC under the hood which is written in
| Rust (esbuild is written in Go), and is esbuild's main
| competitor/alternative.
| megaman821 wrote:
| Are they competitors? I thought SWC is a transpiler and
| ESBuild is a buildtool. I think any tree-shaking or code
| splitting that Parcel has is being done somewhere else.
| astraloverflow wrote:
| True, but how many projects will use either one directly
| and not as a part of a larger toolkit like vitejs and now
| parcel?
| Aeolun wrote:
| I use just esbuild for prod compilation. For dev we still
| use webpack (with webpack-esbuild since it's much faster
| than babel).
| vbsteven wrote:
| Is it a good idea to use a completely different compiler
| toolchain for dev vs prod? I don't know enough about
| their internals but that seems like a recipe for weird
| behavior in production.
| riquito wrote:
| It's a tradeoff. Given that you have a staging
| environment that behaves like production, you want dev to
| be the fastest environment as possible, so that you can
| iterate quickly to develop features and fix bugs, and
| validate them later on staging. Of course, the closer you
| are to prod the better, but when you have to chose for
| dev between speed vs reliability and the difference is
| high, speed is better (higher morale, more features
| deployed, the occasional bugs related to the different
| environments that were not catched by staging (why? need
| one more test) can be quickly fixed - most of the time)
| qbasic_forever wrote:
| esbuild is perfect for adding to a go server app that
| needs to do some basic bundling. Just add it as a go
| module dependency, add a few go generate comments to use
| it to bundle your JS code, and you're done--you don't
| need nodejs or anything else installed.
| qbasic_forever wrote:
| esbuild does transpiling too, for example it can pull out
| typescript annotations or handle JSX transforms. It doesn't
| support transpiling down to ES5 though like swc. In general
| both tools are pretty similar, when you get down to it
| they're just a class of tool to take JS code, produce a
| AST, and then perform various transformations to the AST
| and write it back out as JS.
| phreack wrote:
| Hah, I literally spent a day trying to use parcel to optimize a
| good old fashioned HTML+CSS+JS static site that's not an SPA.
| Webpack would be a pain to set up and all other bundlers were
| lacking for such an use case. Parcel 1 worked great on my
| machine, and then on the server decided to flatten all files to a
| single folder - effectively breaking the site. I had no clue as
| to why, probably something related to having low memory, and the
| reigning response on the issue tracker was 'forget about v1, use
| Parcel v2'. So I tried installing and running it on my machine
| but it would get stuck building unless I gave it a '--no-cache'
| option (took a while to figure that out), and then on the server
| the thing wouldn't even (npm) install. Each time I tried it
| failed kind of differently, mostly because of node-gyp, other
| times because of weird GLIBC. After all that I just gave up,
| maybe in a month I'll be in the mood to set up the Webpack
| madness - but it's more likely I'll end up rewriting the whole
| site as an SPA because the bundler gods demand it be so.
| mamcx wrote:
| I commit the mistake of doing SPA,
|
| ONCE.
|
| But happily revert back. I have a single build.sh script with
| the proper build steps (them are so simply that make or other
| thing is excessive).
|
| So, if you already know how do thing step by step, just do
| that!
| crooked-v wrote:
| If you decide to do an SPA, I'd recommend Next.js, because even
| if you use zero of the features and just put everything in a
| single index.jsx component, it does all the Webpack stuff for
| you. It also has some other useful stuff like easy support for
| rendering plain Markdown files into static files at build time,
| so you can use it as a more capable alternative to tools like
| Jekyll [1].
|
| [1]: https://nextjs.org/blog/markdown
| ggregoire wrote:
| Just use create-react-app if you don't need any of the
| features provided by next.js.
|
| https://reactjs.org/docs/create-a-new-react-
| app.html#recomme...
| Chris_Newton wrote:
| I'm happy to see this. After a breaking change in a Parcel (v1)
| update caused us some trouble a little while back, we took the
| opportunity to start trying out Parcel 2. At the time, source
| maps were broken and the fix went in just after the beta release
| we were using, but the pace of development since then has been
| impressive.
|
| The SWC-based transpilation looks like another big improvement.
| For anyone else who had a similar configuration to us, with some
| Babel packages installed to support Jest for running tests
| regardless of what Parcel was doing with the main build process,
| this also looks interesting, though we haven't tried it yet:
|
| https://swc.rs/docs/usage-swc-jest/
|
| Edit: We have now tried it, but sadly several tests broke due to
| parsing problems. The cause remains a mystery so far, because the
| offending lines are in our application code and not our test
| files, and that same code does appear to build OK via Parcel. So
| it appears that SWC itself, at least as Parcel is using it, can
| parse everything involved, but for some reason to be determined,
| installing @swc/* packages directly as devDependencies and
| configuring the Jest transform for the relevant source files to
| use @swc/jest is not a drop-in replacement for the Jest+Babel
| combination we were using before. If anyone else has had more
| luck getting this working, and similarly getting ESLint to work
| well without needing Babel packages after moving other tools to
| use SWC, details would be appreciated! Otherwise, it looks like
| we'll still need Babel for now to run the testing and linting
| tools, even if Parcel is using SWC for its builds.
| devongovett wrote:
| I started prototyping a @parcel/jest preset and a
| @parcel/register package that would help with this. Basically
| it would use Parcel for builds when using other tools like
| testing frameworks. Potentially we could do something for
| ESLint as well. It's probably a post-2.0 feature, but hopefully
| that could help simplify this a bit.
| Chris_Newton wrote:
| I think that would be useful eventually, but unfortunately my
| experience trying beta 3 this evening has been disastrous, so
| I'd definitely encourage you to focus on stability and
| reliability of the main build system first. Right now, it
| seems the only way to successfully build our code using beta
| 3 is to have none of the old Babel-related packages and
| config around any more, but that means we can't use other
| essentials like Jest or ESLint that also rely on Babel. So
| unfortunately it looks like our current choices with Parcel
| are using Parcel 1 (recently broken in many ways as other
| comments have noted), Parcel 2 beta 2 (which was mostly
| working OK for us, though sourcemaps were broken) or Parcel 2
| beta 3 (doesn't look viable at all based on tonight's
| experiments). Right now this project is only at prototype-to-
| MVP stage in a stealth-mode startup, so it's worth spending
| some of our time to experiment with different tools and
| infrastructure if it gets us to a good set-up for the long
| term, but I hope you get to production-ready before we do!
| :-)
| dang wrote:
| Some past threads:
|
| _Parcel - Fast, zero-configuration web application bundler_ -
| https://news.ycombinator.com/item?id=21961963 - Jan 2020 (201
| comments)
|
| _Parcel: Fast, zero configuration web application bundler_ -
| https://news.ycombinator.com/item?id=17547433 - July 2018 (91
| comments)
|
| _Parcel - A fast, zero configuration web application bundler_ -
| https://news.ycombinator.com/item?id=15853149 - Dec 2017 (163
| comments)
| phtrivier wrote:
| Not sure where it's positionned in the build process, so the
| question might be silly, but : would it be something that a
| project like, say, 'create-react-app' could choose to integrate
| instead of / next to whatever they're using ? Or does it preclude
| using some popular framework / library that reserve it for
| greenfield projects ?
| Zababa wrote:
| I really like how Go and Rust are enabling a new generation of
| dev tools. I don't know if it's because they're popular at the
| moment and the open source ecosystem is growing so lots of people
| use them, or if it's a more real trend. Still, I think they both
| have qualities to make this kind of tools easier to make than
| before.
| sunflowerdeath wrote:
| Obviously, it's great that we get tools that provides such
| improvements, but somehow I feel that JS should not be that slow.
| I expect it to be about 3 to 5 times slower than lower-level
| languages, but when the difference exceeds 10 times, it means
| that the Babel's code is not written very efficiently. Another
| thing, is that usually you only need to optimize a few critical
| places, and that will give the biggest improvement. So I wonder
| if it is possible to optimize or rewrite some parts of Babel into
| a faster language, but keep all of its extensibility and
| ecosystem. Maybe projects like esbuild or swc will provide
| insights for Babels' team.
| [deleted]
| devongovett wrote:
| Yep, this is true. In fact, we already improved performance by
| over 25x by optimizing algorithms in JavaScript. As covered in
| the blog post, this rewrite was motivated by more than just
| performance and does include algorithmic improvements as well.
| We figured that while we were rewriting we might as well _also_
| use a language with more predictable performance traits. But,
| your points about extensibility does still stand, and that 's
| something we hope to look into more in the future.
| hajile wrote:
| Sucrase is what you're looking for. When converting to ES6+,
| it's actually almost 2x as fast as esbuild on a single thread
| (though slower in aggregate).
|
| As they point out, there's a JIT warmup time. Testing against
| small projects that don't allow this makes JS transpilers look
| much worse than they actually are in real-world projects.
|
| https://github.com/alangpierce/sucrase
|
| https://github.com/alangpierce/sucrase/blob/main/benchmark/b...
| jiofih wrote:
| Sucrase is quite fast indeed, but some of the trade-offs make
| it a very difficult choice. It will silently compile invalid
| JS, and is not easily extensible, so you'll end up bringing
| in more tooling on top of it to support things like css
| modules or a framework like svelte. I don't think it will
| survive for long.
|
| It's for good reason that the docs end on this note:
|
| > You should think carefully before using Sucrase in
| production. Sucrase is mostly beneficial in development, and
| in many cases, Babel or tsc will be more suitable for
| production builds.
| [deleted]
___________________________________________________________________
(page generated 2021-05-20 23:01 UTC) |