I used to struggle with this, until I realized what’s really going on. To do conventional web development, you have to download a zillion node modules so you can:
Build one or more “transpilers” (e.g. Typescript, Sass support, JSX)
Build linters and other SAST/DAST tooling
Build packaging tools, to bundle, tree-shake, and minify your code
Use shims/glue to hold all that together
Use libraries that support the end product (e.g. React)
Furnish multiple versions of dependencies in order for each tool to have its own (stable) graph
All this dwarfs any code you’re going to write by multiple orders of magnitude. I once had a node_modules tree that clocked in at over 1.5GB of sourcecode. What I was writing would have fit on a floppy-disk.
That said, it’s kind of insane. The problem is that there’s no binary releases, nor fully-vendored/bundled packages. The entire toolchain source, except nodejs and npm, is downloaded in its entirety, on every such project you run.
In contrast, if you made C++ or Rust developers rebuild their entire toolchain from source on every project, they’d riot. Or, they would re-invent binary releases that weekend.
I used to struggle with this, until I realized what’s really going on. To do conventional web development, you have to download a zillion node modules so you can:
All this dwarfs any code you’re going to write by multiple orders of magnitude. I once had a node_modules tree that clocked in at over 1.5GB of sourcecode. What I was writing would have fit on a floppy-disk.
That said, it’s kind of insane. The problem is that there’s no binary releases, nor fully-vendored/bundled packages. The entire toolchain source, except nodejs and npm, is downloaded in its entirety, on every such project you run.
In contrast, if you made C++ or Rust developers rebuild their entire toolchain from source on every project, they’d riot. Or, they would re-invent binary releases that weekend.
And if you made JavaScript developers use compatible versions for everything they’d riot. And also every build would fail for, like, at least a week
Boy do i have news concerning rust :p