Aus zwei mach eins?

Denoify: Cross-Runtime-Module für Node und Deno erzeugen
Keine Kommentare

Deno ist „by Design“ nicht mit Node kompatibel. Wer seine Module also für beide Runtimes zugänglich machen möchte, muss eigentlich zwei Versionen schreiben. Das fand Garrone Joseph allerdings unpraktisch und entwickelte Denoify: Ein Tool für nur Modul in zwei Runtimes.

Deno ist eigentlich nicht mit dem Node-Ökosystem kompatibel. Das betonte Ryan Dahl, Deno-Erfinder mit Node-Vergangenheit, in den vergangenen Jahren immer wieder. Dahl hat Deno grundlegend anders aufgebaut als Node, sodass Node-Module nicht einfach auch auf Deno laufen. Das ist eine klare Haltung – aber nicht unbedingt eine Position, die alle Entwickler teilen, die mit Deno arbeiten und Module dafür entwickeln möchten. Zu dieser Gruppe an Entwicklern, die in der strengen Trennung der Ökosysteme eher einen Nachteil sehen, gehört Garrone Joseph. Und wie es in der WebTech-Welt üblich ist, hat er nun einfach eine Lösung für das Problem geschaffen: Denoify.

Node zu Deno: Denoify

Mit Denoify können Entwickler ihre Node-Module so modifizieren, dass Code entsteht, der mit Node und Deno kompatibel ist. Ausgehend von einem npm-Modul, das in TypeScript geschrieben sein muss, nimmt Denoify alle notwendigen Anpassungen dafür am Code vor. Natürlich wird dabei nicht einfach eine separate Version des Moduls erzeugt; es entsteht eine Cross-Runtime-Variante, die beide Plattformen abdeckt. Das funktioniert allerdings nur, wenn npm der Ausgangspunkt ist. Denoify ist selbst ein Node-Module und kann somit nicht in Deno ausgeführt werden. Ein allzu großer Nachteil dürfte das jedoch nicht sein, immerhin ist es das große Node-Modules-Ökosystem, das sich viele Entwickler auch für Deno wünschen.

In der Deno Package Registry stehen schon einige Module bereit, die mit Denoify bearbeitet wurden. Dazu gehören beispielsweise Nano JSX und Yolk, aber auch GraphQL Helix. GraphQL selbst wird seit v0.6 auch in Denoify an sich unterstützt; mit dem vorherigen Release 0.5 wurden einige Breaking Changes am Tool vorgenommen. Denoify ist noch jung, das Tool befindet sich noch in der aktiven Entwicklung, auch wenn es bereits in der Praxis angewendet werden kann. Auf GitHub steht das Projekt zur Verfügung, neben dem aktuellen Status gibt die To-Do-Liste Aufschluss darüber, was noch in Planung ist. Neben Denoify selbst kann dort auch die Integration Denoify_ci gefunden werden, die einige Arbeitsschritte über GitHub Actions automatisiert.

Deno oder Node?

Deno gewinnt immer mehr an Bedeutung als Alternative zu Node.js. Auch im neuen Entwickler Magazin geht es um die Frage, wie Deno in Projekten zum Einsatz kommen kann, die zusätzlich um andere Tools ergänzt werden sollen. Denoify fügt der Frage nach der richtigen Runtime nun eine weitere Dimension hinzu: Die Frage, ob das Ökosystem rund um Deno die gewünschten Module bereits unterstützt, könnte damit in Zukunft weniger ins Gewicht fallen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -