• BlueMagma@sh.itjust.works
    link
    fedilink
    arrow-up
    6
    ·
    20 hours ago

    I didn’t know about treeshaking (still unsure what it is exactly since I’m not a js Dev), but I’m guessing it still takes up Gigs of space in the project folder of every Devs PC, duplicated for each project.

    • ddplf@szmer.info
      link
      fedilink
      arrow-up
      4
      ·
      12 hours ago

      It does take a lot of space for devs, but personally I find that absolutely irrelevant, because it’s your end user’s experience that really matters, and - as a dev - you are most likely to have a much better rig and internet connection than your average Joe.

      • jim3692@discuss.online
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        10 hours ago

        Sure, in many cases the dev’s computer is powerful enough to handle that.

        However:

        • The more the dependencies, the more likely it is to pull-off a supply chain attack. Any of those thousands modules can be compromised and infect either the user or the developer.
        • Not all computers are optimized for working with so many tiny files. Have you ever worked in a company that uses McAfee Antivirus? Even Defender can be a massive performance hit in some cases.
        • ddplf@szmer.info
          link
          fedilink
          arrow-up
          1
          ·
          9 hours ago

          I have to say that I may be a bit ignorant, because I’m mostly engaged in greenfield projects with very tiny devteams and I always keep my dependencies count low as possible

          Thank you for pointing this out, that’s very valuable to keep in mind

    • Pieisawesome@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      ·
      15 hours ago

      Tree shaking is essentially reducing the amount of included code to only the stuff being used.

      Let’s say you have a JAR, DLL, or whatever with 5 functions.

      Your application calls function A which also calls function B of the DLL/jar.

      Tree shaking says “hmm, if I follow the code execution path, I only need 2/5 functions from the DLL/jar” and discards the remaining 3/5 functions.

      This significantly reduces the bundle size (the bundle is what is sent to the browser).

    • dazeous@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      20 hours ago

      Some use ‘pnpm’ package manager, alternative to default, where the packages are downloaded once to a central location, and per project directory, it links to the original location so files aren’t duplicated saving space