Next Genpm

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

So viele Webprojekte verwenden npm, um ihre Abhängigkeiten für das Frontend und Backend zu beziehen. npm install und schon werden Tausende von Dateien in einen node_modules Ordner in unseren Projekten geladen, um etwas zu importieren/requiren. Es ist ein wichtiges Rädchen in der großen Maschine der Webentwicklung.

Obwohl ich nicht glaube, dass das npm-Repository jemals ernsthaft herausgefordert wurde, steht die Technologie darum herum regelmäßig im Wettbewerb. Yarn hat sich eine Zeit lang definitiv durchgesetzt. Yarn hatte Lockfiles, die uns halfen sicherzustellen, dass unsere Mitentwickler und Umgebungen exakt dieselben Versionen von Dingen hatten, was außerordentlich vorteilhaft war. Es hat auch einige Hintergrundmagie vollbracht, die es sehr schnell machte. Seitdem hat npm auch Lockfiles und Gerüchten zufolge ist es genauso schnell, wenn nicht sogar schneller.

Ich weiß nicht genug, um Ihnen in die eine oder andere Richtung raten zu können, aber ich finde es faszinierend, dass eine weitere nächste Generation von npm-Download-Dingern im Anmarsch ist.

  • pnpm konzentriert sich auf Geschwindigkeit und Effizienz beim Ausführen mehrerer Projekte: „Eine Version eines Pakets wird nur einmal auf der Festplatte gespeichert.“
  • Turbo ist für die direkte Ausführung im Browser konzipiert.
  • Pikas Ziel ist es, dass Sie nach dem Herunterladen aller Abhängigkeiten nicht gezwungen sein sollten, einen Bundler zu verwenden, und ES6-Imports verwenden können sollten, wenn Sie möchten. UNPKG wird manchmal auch auf diese Weise verwendet, indem es URLs zu Paketen liefert, die direkt von npm bezogen werden, und über eine experimentelle ?module Funktion verfügt, um ES6-Imports direkt zu verwenden.
  • Sogar npm ist dabei! tink ist ihr Ansatz dazu, selbst Node.js aus der Gleichung zu eliminieren und Abhängigkeiten sowohl importieren als auch requiren zu können, ohne überhaupt ein node_modules Verzeichnis zu haben.