[HN Gopher] Esbuild 0.9 ___________________________________________________________________ Esbuild 0.9 Author : swyx Score : 170 points Date : 2021-03-09 14:57 UTC (8 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | FlorianRappl wrote: | I would love to switch to esbuild, but unfortunately some basics | are still not in there. I read some people switched, but I wonder | how they have projects requiring 30+ seconds when not utilizing | bundle splitting. Maybe I am missing something... Are you | outputting esm files or what? | | Would be great to get some insights how people are mitigating the | lack of bundle splitting in non-esm output right now. Thanks! | uses wrote: | I tried this a week or so ago, and it was indeed 100x or 1000x as | fast as my webpack setup. Shocking, really. I couldn't get | dynamic imports / code splitting working, which seemed to not be | fully implemented yet. I also wasn't sure how to make polyfills | happen. | carwyn wrote: | How does this compare to https://www.snowpack.dev/ ? | picardo wrote: | Snowpack is a bundler, not a build tool. It works with a | variety of file formats, and it uses esbuild to compile JS/TS | assets. | bpierre wrote: | SnowPack is more of an all-in-one kind of tool (with dev | server, HMR, etc.). Also it uses esbuild internally :-) | | https://www.snowpack.dev/guides/optimize-and-bundle#option-1... | [deleted] | qbasic_forever wrote: | Snowpack uses esbuild internally now, there's a good rundown of | it and other awesome snowpack features like streaming imports | in their 3.0 release announcement: | https://www.snowpack.dev/posts/2021-01-13-snowpack-3-0 | arcatek wrote: | We now use it to build Yarn, and it's been working very well. | Still some rough edges that prevent us from adopting it at work | (like the lack of dynamic imports when the import expression | references variables), but I'm slowly making progress in | implementing workarounds for that through loaders, and the first | results are encouraging. At its worst, with a Webpack/Esbuild | hybrid approach, we get at least 2x better perfs. | nicoburns wrote: | ESbuild is excellent for using with TypeScript and Node.js. We | were previously using Nodemon to restart the server on changes. | ESbuild is fast enough that rather than having to change our | workflow and run a tsc --watch process in addition to Nodemon | (which would be rather a pain given that we have 5-6 | microservices), we simply use ESbuild to recompile the entire | service before restarting the code (it takes about 0.1 seconds to | compile everything, so it effectively doesn't impact our workflow | at all). | madjam002 wrote: | Amazing stuff, I was thinking of doing pretty much exactly this | this morning. | | Out of interest, if you're bundling with Esbuild before | running, how do you cope with native dependencies? | nicoburns wrote: | We don't use esbuild's "bundle" (--bundle) option, which | means that our files get processed one-by-one and end up as | separate files in the `dist` directory that we output to and | that dependencies aren't processed at all and are just | `required` like normal by our transpiled code. | | Our build command (in a bash script file to avoid string | escaping issues) is: find src -type f \( | -name '*.js' -o -name '*.ts' -o -name '*.sql' \) -print0 \ | | xargs -0 ./node_modules/.bin/esbuild --platform=node | --format=cjs --outdir=dist --loader:.sql=text | madjam002 wrote: | Thanks for sharing, I've just given it a go with one of my | larger projects and WOW!! Typescript incremental | compilation was taking around 2 seconds on every save, then | Nodemon would restart etc. | | I've plugged in Esbuild, I have used bundle mode though to | see what it's like, it works fine if I external all of my | node modules, it builds in 0.23 seconds (approx 350 source | files in my project). | | Nodemon now watches for TS file changes and exec's the | esbuild on every start. | | Thank you for the pointer to this as this will be a much | needed productivity boost! | | I'll try bundling some node modules when I have some time | but it will take more work as I use Yarn PnP (I've found a | plug-in so will definitely try that) | Kaze404 wrote: | You can instruct nodemon to run "tsc" by itself when there are | file changes, so you don't have to separately run tsc in watch | mode. | scaladev wrote: | Hell yes, esbuild is an amazing tool. I not only use it in most | CRA projects (where it replaces webpack and builds everything at | least two times faster), but it's also easy to use for plain HTML | pages to add some interactivity without writing thousands of | lines of webpack black magic: esbuild App.tsx | --define:process.env.NODE_ENV=\\\"production\\\" --bundle | --minify --target=es6 --outfile=out.js | | where App.tsx is your entry point. Include out.js into the page | and you're done. | akhilcacharya wrote: | This is exceptional - what's the downside when using it with | CRA? | lsmurray wrote: | do you have instructions for integrating with cra | scaladev wrote: | Unfortunately it's not officially supported (as usual in CRA | world), so you have to resort to one of the config rewriters. | I've been using this0 and only had one problem with numeric | enums in TypeScript. I don't remember the exact issue, but it | was caused by my own stupidity, and was easy to fix. | | [0] https://github.com/pradel/create-react-app- | esbuild/tree/main... | picardo wrote: | esbuild can be a good alternative to Webpack in some cases, but | Webpack solves a lot of edge cases well. For example, just | today I debugged an issue where a library had used `require` in | an ES module instead of `import`, and that broke the build with | esbuild. So I had to fork the library to fix that issue. | Webpack handles that case without problems. | | I can think of at least a few cases like that where Webpack | works better, but esbuild is (hopefully) going to catch up. | It'd be ideal if Webpack and other bundler tools ditched their | homegrown build tools and replaced them with esbuild. | earthboundkid wrote: | > Webpack solves a lot of edge cases well | | I would quibble with the word "solves". Webpack is a tool | building tool. With Webpack, you can build a tool to solve | your edge case problem, as long as you're willing to spend a | lot of time and dig through random Github issues for your | dependencies. Webpack itself however does basically nothing. | [deleted] | connor4312 wrote: | > Webpack itself however does basically nothing | | This is not the case. I love esbuild and hope to see it go | far, but Webpack does out of the box most of what esbuild | (today) does as well, with the notable exception of | TypeScript /jsx transpilation. For more advanced scenarios, | like dealing with css modules, you do need plugins -- but | esbuild doesn't support most of these scenarios today at | all. | | It's like saying VS Code does nothing: you probably want | extensions to help you out and let you do more complex | things more easily, but it doesn't "do nothing" out of the | box. | encryptluks2 wrote: | Love how this is used with Hugo: | | https://gohugo.io/hugo-pipes/js/ | earthboundkid wrote: | Yes. When ESBuild came out, I made a feature request to get it | added to Hugo, and I was surprised at how well it has worked | out. Goes to show you should always open an issue! | AbuAssar wrote: | esbuild makes it pretty clear that writing the JS ecosystem in JS | is a bad choice*. | | now we need to rewrite tsc/babel/npm/eslint/etc... in a language | that compile down to native binary that is also cross platform | (like go or rust), | | to gain the same performance improvements across the entire JS | tool-chain. | | * based on the benchmark on their landing page. | brundolf wrote: | One of the main benefits of Esbuild (if I recall correctly) is | that all passes share a single AST. Whereas in a traditional | setup your linter, transpiler, formatter, and sometimes even | bundler and minifier all do their own totally independent | passes on the source which means parsing it from scratch each | time. So this would be a classic case of integrating everything | into a monolith for a boost in efficiency. | afavour wrote: | I don't know about that. Just look at the performance | difference between NPM and Yarn: both built with JS, but for me | at least Yarn is way, way faster. | | I'm sure it would make sense to rewrite certain things in Rust | or Go (then possibly pull them into Node as native modules) but | they're not magic. Good engineering will win out no matter | what. | earthboundkid wrote: | Good engineering is definitely key, but I think interpreted | languages are a bad fit for developer tools (though they are | extremely popular for writing developer tools). On the | surface, writing JS tools in JS is good because hey, you | definitely know JS, right? But in practice it is bad because | I don't want the JS I am writing in any way constrained by | the JS you wrote. | | The problem with any interpreted language is that to run the | tool you need all the source and all the dependencies plus | the interpreter in something like their intended versions to | be present in the right locations on disk. This is a huge | PITA, and if you're say writing JavaScript targeting ES5 but | your tools are targeting ES2020 or vice versa, there can be | painful yak shaving sessions getting everything on the same | page. | | Essentially all developer tools should be static binaries. | brundolf wrote: | Would I be right in guessing that most of your experience | with dynamic languages comes from Python? | | 1) Modern JITed JS is fast. It's closer to Java than it is | to what we typically think of as "interpreted languages". | | 2) "something like their intended versions to be present in | the right locations on disk"; Node packages really just | depend on the user having a new-enough install of Node and | NPM, somewhere in the path. Any dependencies that live on | npm will install to the local directory to ensure against | conflicts or permissions issues. The only exception I can | think of is that occasionally (looking at you, node-sass) | npm dependencies will have to do a native build of | something and require a local C/++ compiler somewhere in | the path. This is pretty rare in my experience, and isn't a | super brittle dependency anyway. | | 3) "if you're say writing JavaScript targeting ES5 but your | tools are targeting ES2020 or vice versa, there can be | painful yak shaving sessions getting everything on the same | page"; this really doesn't happen in any distributed NPM | dependencies I've worked with. The great majority are | written for the least-common-denominator of environments; | if they use ES2020 internally, they'll do their own | transpilation step to make sure you can use them in older | environments. Also, "or vice versa" really doesn't apply | because all ES versions are 100% backwards-compatible. You | just need a Node version new enough to cover the newest | features that any of your code or dependencies is using. | Dependencies will be as compatible as they can be; your own | code is under your control. Virtually never an issue. | earthboundkid wrote: | 1. My complaint is not about speed. | | 2. Node is much better than Python because the correct | location on disk is pretty much project/node_modules. | However, it is still that case that e.g. Babel was broken | by Node 12.17.0 [1] last year, which necessitates | something like NVM. I don't want to deal with that for my | build tools. I just want a binary that is known to work | to continue to work until it is replaced. | | 3. Yes, conventionally everything in Nodeland was written | out to dist as ES5. This also sucks ass because now you | end up shipping a bunch of ES5 crap to your end users | even though you aren't targeting ES5. It is very hard to | build an actual ES2020 module unless you're willing to | not use external dependencies at all. Snowpack et al are | shifting this slowly, but it has barely even begun as a | trend. | | [0] https://nodejs.org/en/blog/release/v12.17.0/ https:// | www.google.com/search?q=babel+compat+data+corejs3+sh... | arcatek wrote: | Speaking of Yarn in particular since I maintain it, I | strongly believe that more than speed we (package managers) | need a good polish. And to do that, we need a community that | feels empowered to make changes when they feel frustrated | about something - which makes using JS / TS critical. By | contrast, the UX of a bundler / linter is fairly | straightforward (compared to Yarn's 46 builtin commands), so | making external contributions easier isn't really necessary. | deanclatworthy wrote: | I think this comment undervalues the quality of engineering | that Evan has put into esbuild. It's not only quick because | it's written in golang, but also due to the decisions taken in | architecture and an opinionated tool that does mainly one thing | well. | jakelazaroff wrote: | I don't read OP as devaluing Evan's work. Presumably the | TypeScript/Webpack/etc teams are also doing great engineering | work -- but because they're writing in JS, the performance | ceiling is significantly lower. | christophilus wrote: | I don't think so. I'd bet that a JS solution that followed | esbuild's architecture would be in the same order of magnitude | of performance. | | Now, you could argue that JS encourages complex, inefficient | abstractions and over engineering and Go encourages the | opposite. That, I'd believe. | qbasic_forever wrote: | The JS & frontend world is _seriously fun_ right now. If you blew | it all off as a quagmire of complexity, sketchy engineering, | treadmill of tools, etc... it's time to re-evaluate everything. I | have more fun and feel more productive working on modern frontend | stuff with tools like esbuild than any other GUI programming I've | done in 30 years. | stefan_ wrote: | Drag&drop building UI in Visual Whatever was plenty productive, | hell they even had what the kids today call server rendering, | and if it didn't look right I could always press F5 and see the | result right there. | Scramblejams wrote: | Yep, I tried front-end way back and hated it. Can you mention | some other tech that should be covered in my re-evaluation? | qbasic_forever wrote: | React & next.js are worth evaluating. It's a super powerful | full stack with everything from server side rendered data | (REST APIs even) all the way to complete client-side SPAs, | all using the same react components. It's a slick little | swiss-army knife that can make anything from a basic blog | with markdown content, to a static marketing page, to a full | client-first PWA experience. There is sadly almost nothing | else really like it right now. | | MDX is another neat step, it's markdown + react components | and fits in very well with next.js: | https://github.com/hashicorp/next-mdx-remote | | Vue, and Svelte to just get an idea of what other components | systems are like. They're all equally capable and just have | different tradeoffs and styles. Keep an eye on Svelte in | particular as its next.js-like system (SvelteKit) is working | on a major revamp to be serverless-first and is quite | interesting. Once you learn one component system it's easy to | switch between them all--they're all cribbing and building on | top of each other's ideas. The whole space is innovating in a | great way. | | Web components are good to learn and compare to component | frameworks above. It's still a changing space but points to a | nice future where we can all just publish and share | components. | pandemic_region wrote: | Yet none of the stuff you mention here will live beyond the | next two years. Fun is as much as i would describe the js | ecosystem, for more boring corporate use banking on these | is the equivalent of getting a trojan horse in the | application portfolio. | asattarmd wrote: | React was released in 2013, that's 8 years. | Chris_Newton wrote: | While that's true, code using React in 2021 often bears | little resemblance to code using React in 2013, and the | ecosystem around it looks very different too. | | It's easy to forget that hooks were only introduced in | React 16.8, which was released just over two years ago. | And yet today, if you visit popular forums for React devs | like /r/reactjs, you'll find no shortage of people who | will tell you that class-based components are ancient | history and anyone who isn't using hooks for everything | today is a dinosaur. | | This year, I've noticed a spate of online discussions | about state management within the React ecosystem. Just | like the hooks vs. classes debate of yesteryear, there is | a striking contrast between those forever keen to do the | new thing (sometimes using React's own context and hooks, | sometimes using relatively new libraries) and those who | prefer to rely on more tried-and-tested tech like Redux | and MobX. | | In any situation like this, it's sensible to question how | much real progress is being made, and how much of the | change is just lost productivity due to churn in tools | and "best practices". If so many developers think it's | normal to swap out most of your tools and coding style | every couple of years or less, you have to wonder how | long they expect anything they ever build to be | maintained for or how often they think longer-lived | software should have big rewrites just to update the | tools... | | In contrast, esbuild is shaping up to be an excellent | tool. There seems to be a healthy focus on doing one | common and important job well, it's _much_ better at it | than the popular tools it potentially replaces, and it | also seems designed to play nicely with others. It | reminds me of the early days of 6to5 /Babel, actually. | This is what we need more of in the front-end web dev | community right now. | qbasic_forever wrote: | And I personally can't wait to see what amazing things | the creators of these component systems will land on | next... | | Next.js is pretty corporate-friendly. Very easy to split | things up and have many folks and teams working on | monoliths or services with it. | johnfn wrote: | React won't live past two years? What? | | I'd be willing to stake money on React, Vue, next.js and | Svelte surviving at least 2 more years - roughly in | descending order of probability, though all three well | above 50%. | wishinghand wrote: | That's such an unqualified statement that I'd be | embarrassed to say it out loud. Angular 1 apps are still | in production. COBOL is still in production. I'd bet $100 | that two years from this date, all three of those are | still popular, being used by enterprise, and have | tutorials written for them on blogs or produced on | YouTube. | teryyy wrote: | TailwindCSS, Svelte, and Snowpack are probably worth a shot, | all pretty much bleeding edge | 1_player wrote: | The problem with front end development is that it's all | bleeding edge and nothing that's stable and is improved for | more than one hype cycle. | | Suggesting more bleeding edge tech is not a good argument | to demonstrate that front end development got better. | | In my experience, it changed, it improved on many aspects, | but it's still a pile of unstable crap running on the power | of hype and over-enthusiastic junior engineers. | qbasic_forever wrote: | I get your frustration (and shared it a year ago), but | you're really doing something like react a disservice by | dismissing it like that as just hype. On the contrary | react has evolved significantly over the years, | introducing things like JSX (templating HTML + JS in the | same file, now standard in every other component system), | build tooling like create-react-app (zero config tooling, | now standard in every JS build tool), functional | component model with hooks (now copied by every other | component library), and on the horizon stuff like server- | side components. It has only gotten more stable, more | proven, and easier to use over time. | protoduction wrote: | I'm really biased as I am building it myself: Starboard | Notebook puts literate programming into the browser without a | lot of magic. | | It's amazing what browsers can do these days without any | build step! | | [0]: https://starboard.gg | matt7340 wrote: | I definitely agree with this in general, but there are | exceptions where it's still a quagmire. Angular, for example. | EMM_386 wrote: | I agree. I was a web developer in the 90s when stuff was | primitive, ugly and difficult. | | I switched to desktop .Net development in 2001 did that for | almost 15 years. | | Since then I have been back on the web. I am full-stack so I | find myself switching between front-end and back-end | frequently. | | I am enjoying my time more in the world of TypeScript, VS Code, | and Angular than I am writing the back-end REST APIs in .Net | Core and Visual Studio. | | I was dreading going back to web development when I switched | back again but recently it has turned out to be nicely | structured, performant, logical and enjoyable. | christophilus wrote: | My career sounds much like yours, and my conclusions are the | same. Typescript is a decent language. The tooling is | excellent. The old footguns are mostly behind us. It's | definitely a completely new ballgame vs the old hackery I | used to have to endure. | lame88 wrote: | Every time I am unfortunate enough to do something front-end | it's just as bad as I remember. | | Edit: professionally, that is; when I do front-end related | stuff for myself, it's fine, but they are small and I keep | things simple - vanilla JS where needed, etc. | wishinghand wrote: | What do you remember? These days I'm no longer concerned | about `this` pointing to the wrong object. Importing files is | a huge step forward from when I started. The standard library | has grown; a bunch of Lodash isn't needed anymore because of | it. Promises and async/await. Even just template strings! So | glad I don't have to concatenate with pluses and watching my | double or single quotes. | swyx wrote: | totally! i have been developing a thesis around this I call the | "Third Age" of JavaScript - TLDR: the arc of history is toward | ES Modules, and polyglot tooling, like esbuild. Creating much | faster dev tools and user experiences. | | http://swyx.io/js-third-age | anfrank wrote: | Release note says pinning version with "^0.8.0", should be | "~0.8.0" right? | machiaweliczny wrote: | ^ is for minor version, ~ for patch, you can pin exact version | without using anything, so "0.8.0" | dilsmatchanov wrote: | waiting for js bundler written in Rust | btd wrote: | you know about swc right? https://swc.rs/ | wdb wrote: | Yes, but a bunch of the Typescript support is closed sourced | . No idea, if that's important for you. | searchableguy wrote: | Type checker, yes. I don't think esbuild comes with a | built-in typechecker either. | | Is there anything else I am missing? | dilsmatchanov wrote: | omg lol | nicoburns wrote: | I'd recommend esbuild over SWC. It's much more mature. | [deleted] | snemvalts wrote: | For those who are actively using esbuild with TypeScript, how do | you check the types? | nicoburns wrote: | In 3 ways: | | - Using the Language Server Plugin in editors | | - `npx tsc --noEmit` in a pre-commit hook | | - `npx tsc --noEmit` in CI | mceachen wrote: | I have a "lint" pre-test step that builds with tsc and runs | eslint. | | I also have a `tsc --watch` running in a vscode window that | highlights syntax and typing errors as I develop. | emptysea wrote: | I run tsc with noEmit passed as a flag. Esbuild is replaces my | previous tsc, babel, uglify setup and is much faster. | brundolf wrote: | What some people do is use types purely for editor purposes, | and let the build process just throw them away. We did this at | my last company using Babel | bpierre wrote: | If you want to use config files with esbuild, esbuild-config is | for you: | | https://github.com/bpierre/esbuild-config | | (disclaimer: I am the author) | jmondi wrote: | I really really wish this supported experimental decorators with | reflection metadata so we could use this in our Angular and | NestJS apps. | privatenumber wrote: | esbuild has flipped the JS community on its head. Not only as an | impressive JS bundler, but through all the next gen tooling | esbuild is powering. | | For example, you can now speed up your Webpack build with esbuild | by replacing babel-loader/ts-loader/Terser: | https://github.com/privatenumber/esbuild-loader | | (It also blows my mind that Evan is the CTO is Figma. How is he | so productive!?) | capableweb wrote: | > (It also blows my mind that Evan is the CTO is Figma. How is | he so productive!?) | | When Evan first joined Figma, he saw how much time the | engineers spent on waiting for webpack and fighting JS | configuration files. Then one time, during an outage, the | developers tried to push a fix but the build was failing | because babel-deduplicate-int had changed their API interface | but only did a minor version bump when published to NPM, and | Figma engineers are at the edge of technology so they use | version ranges, not fixed versions. | | When Evan heard this he pored up some whisky and created | esbuild in two nights. And the JS developers rejoiced. Now the | developers were so productive, that Evan already had nothing to | do. No one was fighting, all engineers were happy and playing | ping-pong like any everyday was Friday. | | So now the only thing keeping all the JS engineers happy at | Figma, is the continued success and improvement of esbuild. So | Evan just spends his time with esbuild now. | | (This is all fictional, of course) | swyx wrote: | i said on twitter that esbuild is the best possible ad for | working for figma that they could have ever done. (if this is | what they do for _fun_... imagine what they do at work, etc). | | arguably he's doing his job just working on this thing all by | himself | astashov wrote: | I switched my pet project (about 15000 lines of code) from | Webpack to esbuild, and reduced the build time from 30 seconds to | 2 seconds. | | The trickiest part was to make Tailwind CSS work. I used to do | that via postcss plugin, but just running that plugin even | without Webpack takes 15 seconds. Finally, with some | modifications in my CSS I made it work, and purged the unused | styles just by using PurgeCSS API manually. | | The setup got a bit hairier than with Webpack, but it builds damn | fast now. | deergomoo wrote: | I believe the Tailwind team are currently working on addressing | the performance issues. The project lead was recently tweeting | about the new approach [0]; instead of building a huge CSS file | and stripping out the unused classes, the new version will only | generate the used classes to begin with. | | [0] https://twitter.com/adamwathan/status/1366514152517337089 | threatofrain wrote: | How does Esbuild achieve such insane differences in speed? | wffurr wrote: | https://esbuild.github.io/faq/#why-is-esbuild-fast | amatic wrote: | It is written in go and compiled. Go is responsible for high | parallelism. The fact it is compiled is an advantage over | javascript-based bundlers because they are re-compiled every | time you start building the source code (did I get that | right?). | parhamn wrote: | As soon as esbuild gets react hot reloading capabilities I'm | jumping ship. Although that might be out of scope and there is | Vite. I'm hoping to avoid vite and go pure esbuild. Fantastic | tool. It will make JavaScript distribution a much more pleasant | experience across the board when it gets wider adoption. | ccmcarey wrote: | Think that's out of scope - doesn't snowpack (which uses | esbuild) cover this though? https://www.snowpack.dev/ | keraf wrote: | Snowpack uses ESM for development which allows really fast | HMR. And ESBuild is used for production builds. Best of both | worlds. | lhorie wrote: | He said in the past that he's not interested in implementing | HMR[0] | | [0] https://github.com/evanw/esbuild/issues/97 | parhamn wrote: | Makes logical sense from a library/unixy perspective. They | offered similar reasoning for not including a file watcher at | first but they eventually added that. | | HMR is pretty much the last missing piece to make this the | only JS bundling and dev tool you need. It would be a bad | decision to omit it. | qbasic_forever wrote: | Check out tools like vite or snowpack, which use esbuild | internally. They're the HMR developer experience you're | looking for. | izelnakri wrote: | I'm actually very happy that esbuild doesnt have HMR by | default. Despite the fact that most frontend devs | loving/hyping HMR, I prefer live-reloads more because it | refetches data/makes network calls and run my route hooks | without any additional step. This is particularly important | when you run your application tests in the browser(thats | better than running app tests in CI btw) and change these | test files constantly. The fact that most frontend devs favor | HMR over live-reload signals something that I really dislike. | AltruisticGapHN wrote: | Agree I hope Vite has a way to easily turn it off. Never | understood the appeal. Way more fun to "see" what you're | going for in your mind and write more at once and see what | happens, then react compulsively to a tight feedback loop. | I think these features sometimes don't make us better | developers. I'm sure it has _some_ good uses, personally | never needed it. | nperez wrote: | I've been a f/e dev for around a decade and I don't trust | HMR. I end up refreshing manually anyway just so I know I'm | not seeing issues that don't exist due to event bindings | not refreshing properly, or app state getting messed up | between loads. It's fine for styling, but worries me when | there's too much complexity involved | AltruisticGapHN wrote: | That and the fact that unless you have two monitors often | as you save the refresh happens out of view, when you're | not seeing the page, so you lose the immediate visual | feedback of what actually changes. When you make minute | touches to a design it's annoying. When I hit F5 myself I | can look at exactly what I'm interested and see if it | shifted some pixels, if the font size is a bit better or | worse... | dota_fanatic wrote: | _> unless you have two monitors_ | | Or have your editor and browser window tiled next to each | other? Given how often FE development dabbles with | design, using at least one decently sized monitor seems | requisite. | | And aren't FEers generally tweaking design in the DOM via | a browser's developer tools when they're not sure what | they want yet, copying back over into source once the | design is finalized? Seems downright unpleasant to modify | styling in the way you've described, and odd given | there's a fantastic IDE in every major browser for | styling exploration. | wishinghand wrote: | You bring up a good point. Wondering if there can be some | way to have both side by side. When I'm working on markup | or css I definitely want HMR. But when I'm in the script | section I've run into issues where I needed to reload the | page. | capableweb wrote: | > some way to have both side by side | | Yes, just hook up to the reloading event of HMR on the | client-side and call `window.location.reload()` when that | happens, now you have traditional "live reload". | jayair wrote: | We love esbuild and we use it internally for SST | https://github.com/serverless-stack/serverless-stack. | | The work Evan does is seriously impressive. | kraig wrote: | as a heavy user of CDK, sst looks pretty cool. | | i'm curious why you didn't go the direction of adding this | functionality to CDK directly? i'd like to use some of the | functionality in here like live lambda development, but i also | don't want to take on converting my org's already built CDK | extensions and deal with migrations. ___________________________________________________________________ (page generated 2021-03-09 23:01 UTC)