← Back to context

Comment by user43928

14 hours ago

I also don't like repetitive work, but I think it can be beneficial to understand how the tools you use work, and bun/Deno seem to abstract much of it away.

Random example: I've worked with many frontend developers who seemed to believe listing dependencies in package.json in devDependencies instead of 'dependencies' controls what ends up in the production bundle.

I'm under the impression few understand that this is only a cosmetic distinction unless you use the package manager's --omit=dev or --production flags during install.

What is included in the production bundle is of course determined by the bundler's dependency-graph reachability from the entry point.

For people who never configured these tools themselves, it's probably difficult to understand how the modern web stack works.

However, nowadays you can probably have AI explain it to you well enough while it fixes the issues.

Silly drive by take:

> I've worked with many frontend developers who seemed to believe listing dependencies in package.json in devDependencies instead of 'dependencies' controls what ends up in the production bundle.

If so many believe that it’s how it should work, maybe it just should work that way. Principle of least surprise and all that.

  • You can and probably should set up your production builds that way but it's not automatic.

    It also gets messy if you're building 2 or 3 services simultaneously out of the same node_modules dir. E.g frontend, backend, shared, scripts...

    • How would you set that up?

      Like say you installed only the production dependencies, then you'd be missing the build tools, bundler, etc.

      One idea would be to use hooks of your bundler to enforce that each module resolved during the production build is declared in the regular dependencies.

      It would be far from a standard solution though.

      3 replies →

On most projects you really only need one person to set it up one time with any deep level of understanding. Having each person on a project go deep into the weeds on how the package manager works is not very useful. That time would be better spend on almost anything else.

One should understand how their tools work but there's no such thing as doing that without understanding things across the abstractions involved and at least a good portion of what happens under them, Deno or not.

It works the same way you use a bundler instead of assembling your own and so on and so forth down the tree. The farther down the tree, the less focus you should give your understanding to, but that's not an excuse for giving no understanding below the first layer.

  • This is why I'm not overly concerned about AI taking our jobs. Those who do not RTFM* are doomed to rewrite it in blood, toil, tears, and sweat.

    * Or, in the absence of well-written documentation, the source code, the decompiled object code, or at the very least inspect the end result.