142

Steps to reproduce:

  1. Start a Node project that uses at least five direct dependencies.
  2. Leave it alone for three months.
  3. Come back and try to install it.

Something in the dependency tree will yell at you that it is deprecated or discontinued. That thing will not be one of your direct dependencies.

NPM will tell you that you have at least one security vulnerability. At least one of the vulnerabilities will be impossible to trigger in your particular application. At least one of the vulnerabilities will not be able to be fixed by updating the versions of your dependencies.

(I am sure I exaggerate, but not by much!)

Why is it like this? How many hours per week does this running-to-stay-in-place cost the average Node project? How many hours per week of developer time is the minimum viable Node project actually supposed to have available?

you are viewing a single comment's thread
view the rest of the comments
[-] ono@lemmy.ca 26 points 1 year ago* (last edited 1 year ago)

My take: It's because the "trust everything from everybody" model is fundamentally broken.

Note that trust is not only about avoiding malicious or vulnerable code, but also about dependability. Even if you ignore the "supply chain" security problems inherent in this model, it practically guarantees that breakage like this will happen.

This is part of why I prefer languages with robust standard libraries, and why I am very picky about third party dependencies.

[-] howlongisleft@lemmy.world 3 points 1 year ago

Thank god for proxy registries. I love Node, but it's like using a house of cards as the foundation of a skyscraper.

[-] BrianTheeBiscuiteer@lemmy.world 3 points 1 year ago

The fact that NPM can't use multiple registries (yes, I know about scoped registries) is astounding. For every other language my org will separate artifacts into half a dozen or so virtual repos. The artifact team is quite annoyed that Node/JavaScript has to all go into one uber-repo.

load more comments (5 replies)
this post was submitted on 06 Aug 2023
142 points (97.3% liked)

Programming

17314 readers
71 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS