NPM ecosystem: Should we decouple?

Problem/Opportunity Statement

The NPM ecosystem is great-and-all, but do we really need all the problems associated with it?

node_modules_whyyyyy

According to The State of Open Source Security 2020 there are more than 1,300,000 packages on NPM! 🤕

Also:

Electron is our biggest anchor to the Node.js world. Once we remove Electron we might be able to sever that link completely, or at least reduce our exposure.

We could look at elm-tooling instead:

Why install Elm tools using elm-tooling instead of npm?

Installing elm, elm-format and elm-json using npm and elm-tooling:

Metric npm elm-tooling
Number of packages 70 1
node_modules/ size 45 MB 120 KB
Installation time 9 s 2 s
Re-installation time 9 s 0.5 s
Processing Sequential Parallel
Download verification None SHA256

See:

What would success / a fix look like?

  • No NPM packages required
  • If that's not possible now, then orders of magnitude fewer NPM packages would be great (currently we have 566 packages in package-lock.json)