• ddplf@szmer.info
    link
    fedilink
    arrow-up
    9
    arrow-down
    8
    ·
    edit-2
    21 hours ago

    Which is of very little importance in most cases, because modern bundlers incorporate treeshaking in order to filter out all the unused code when you’re building a production application

    Edit: okay well appearently that’s controversial for some reason

    • 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
            ·
            8 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

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

      node_modules might take a lot of space on a dev machine, but as op said, only the files used are packed into web artifacts that are deployed.

      So 12gbs can end up as 10mb, arbitrary number to highlight significance of tree shaking.