Node.js 20 ist jetzt verfügbar

Von Node.js-Projekt, 18.04.2023

Wir freuen uns, die Veröffentlichung von Node.js 20 bekannt zu geben! Zu den Highlights gehören das neue Node.js-Berechtigungsmodell, synchrones import.meta.resolve, stabiles test_runner, JavaScript-Engine-Updates V8 auf 11.3, Ada auf 2.0 und mehr!

Das Projekt schreitet in einer Reihe von Bereichen weiter voran, wobei viele neue Funktionen und Korrekturen in bestehende LTS-Versionen integriert werden. Aus diesem Grund stellen die im Changelog für Node.js 20 beschriebenen Änderungen nur eine kleine Teilmenge der Funktionen dar und funktionieren ab dem letzten Major Release. Dieser Blogbeitrag wird der gesamten Arbeit in Bezug auf diese Änderungen zusätzlichen Kontext hinzufügen.

Weitere Informationen zu unserer Veröffentlichungsrichtlinie finden Sie unter https://github.com/nodejs/release.

Um Node.js 20.0.0 herunterzuladen, gehen Sie zu: https://nodejs.org/en/download/current/. Sie finden den Veröffentlichungsbeitrag unter https://nodejs.org/en/blog/release/v20.0.0, der die vollständige Liste der in dieser Veröffentlichung enthaltenen Commits enthält.

Zur Erinnerung: Node.js 20 wird im Oktober in den Long Term Support (LTS) aufgenommen, aber bis dahin wird es für die nächsten sechs Monate die "aktuelle" Version sein. Wir empfehlen Ihnen, die neuen Funktionen und Vorteile dieser neuesten Version zu erkunden und ihre potenziellen Auswirkungen auf Ihre Anwendungen zu bewerten.

Bemerkenswerte Änderungen Berechtigungsmodell

Das Node.js-Autorisierungsmodell ist ein experimenteller Mechanismus zum Einschränken des Zugriffs auf bestimmte Ressourcen zur Laufzeit.

In dieser ersten Version, die das Autorisierungsmodell enthält, bieten die Funktionen die folgenden Funktionen:

Beschränken Sie den Zugriff auf das Dateisystem (Lesen und Schreiben) Beschränken Sie den Zugriff auf child_process Beschränken Sie den Zugriff auf worker_threads Beschränken Sie den Zugriff auf native Addons (dasselbe wie das Flag --no-addons)

Beim Starten von Node.js mit --experimental-permission wird die Möglichkeit eingeschränkt, auf das Dateisystem zuzugreifen, Prozesse zu starten und node:worker_threads zu verwenden.

Entwickler, die Node.js verwenden, haben jetzt mit der Einführung der Flags --allow-fs-read und --allow-fs-write mehr Kontrolle über den Zugriff auf das Dateisystem. Diese experimentellen Funktionen ermöglichen eine genauere Kontrolle darüber, auf welche Teile des Dateisystems Node.js-Prozesse zugreifen können.

Um diese Flags zu aktivieren, können Entwickler das Flag --experimental-permission mit den gewünschten Berechtigungen verwenden. Wenn Sie beispielsweise den folgenden Befehl ausführen, erhalten Sie Lese- und Schreibzugriff auf das gesamte Dateisystem:

$ node --experimental-permission --allow-fs-read=* --allow-fs-write=* index.js

Entwickler können auch bestimmte Pfade für den Zugriff auf das Dateisystem angeben, indem sie kommagetrennte Werte an Flags übergeben. Der folgende Befehl ermöglicht beispielsweise den Schreibzugriff auf den Ordner /tmp/:

$ node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read=/home/index.js index.js

Generische Muster können auch verwendet werden, um den Zugriff auf mehrere Dateien oder Ordner gleichzeitig zu ermöglichen. Der folgende Befehl ermöglicht beispielsweise den Lesezugriff auf alle Dateien und Ordner im /home/-Verzeichnis, beginnend mit test:

$ node --experimental-permission --allow-fs-read=/home/test* index.js

Wenn das Berechtigungsmodell aktiviert ist, kann die neue Berechtigungseigenschaft des Prozessobjekts verwendet werden, um zu prüfen, ob eine bestimmte Berechtigung zur Laufzeit erteilt wurde.

process.permission.has('fs.write'); // WAHR process.permission.has('fs.write', '/home/nodejs/protected-folder'); // WAHR

Es ist wichtig zu beachten, dass diese Funktionen noch experimentell sind und sich in zukünftigen Versionen von Node.js ändern können

Zusätzlich finden Sie weitere Informationen in der Dokumentation zum Autorisierungsmodell.

Das Berechtigungsmodell wurde von Rafael Gonzaga in #44004 beigesteuert.

Nahezu stabile Custom ESM Magazinhaken

Lebenszyklus-Hooks für benutzerdefinierte ES-Module, die über Ladeprogramme (--experimental-loader=./foo.mjs) bereitgestellt werden, werden jetzt in einem dedizierten Thread ausgeführt, der vom Haupt-Thread isoliert ist. Dies stellt einen separaten Bereich für Ladeprogramme bereit und stellt sicher, dass es keine Kreuzkontamination zwischen Ladeprogrammen und Anwendungscode gibt.

Wie im Browserverhalten kehrt import.meta.resolve() jetzt synchron zurück; Beachten Sie, dass das Lösen ...

Node.js 20 ist jetzt verfügbar

Von Node.js-Projekt, 18.04.2023

Wir freuen uns, die Veröffentlichung von Node.js 20 bekannt zu geben! Zu den Highlights gehören das neue Node.js-Berechtigungsmodell, synchrones import.meta.resolve, stabiles test_runner, JavaScript-Engine-Updates V8 auf 11.3, Ada auf 2.0 und mehr!

Das Projekt schreitet in einer Reihe von Bereichen weiter voran, wobei viele neue Funktionen und Korrekturen in bestehende LTS-Versionen integriert werden. Aus diesem Grund stellen die im Changelog für Node.js 20 beschriebenen Änderungen nur eine kleine Teilmenge der Funktionen dar und funktionieren ab dem letzten Major Release. Dieser Blogbeitrag wird der gesamten Arbeit in Bezug auf diese Änderungen zusätzlichen Kontext hinzufügen.

Weitere Informationen zu unserer Veröffentlichungsrichtlinie finden Sie unter https://github.com/nodejs/release.

Um Node.js 20.0.0 herunterzuladen, gehen Sie zu: https://nodejs.org/en/download/current/. Sie finden den Veröffentlichungsbeitrag unter https://nodejs.org/en/blog/release/v20.0.0, der die vollständige Liste der in dieser Veröffentlichung enthaltenen Commits enthält.

Zur Erinnerung: Node.js 20 wird im Oktober in den Long Term Support (LTS) aufgenommen, aber bis dahin wird es für die nächsten sechs Monate die "aktuelle" Version sein. Wir empfehlen Ihnen, die neuen Funktionen und Vorteile dieser neuesten Version zu erkunden und ihre potenziellen Auswirkungen auf Ihre Anwendungen zu bewerten.

Bemerkenswerte Änderungen Berechtigungsmodell

Das Node.js-Autorisierungsmodell ist ein experimenteller Mechanismus zum Einschränken des Zugriffs auf bestimmte Ressourcen zur Laufzeit.

In dieser ersten Version, die das Autorisierungsmodell enthält, bieten die Funktionen die folgenden Funktionen:

Beschränken Sie den Zugriff auf das Dateisystem (Lesen und Schreiben) Beschränken Sie den Zugriff auf child_process Beschränken Sie den Zugriff auf worker_threads Beschränken Sie den Zugriff auf native Addons (dasselbe wie das Flag --no-addons)

Beim Starten von Node.js mit --experimental-permission wird die Möglichkeit eingeschränkt, auf das Dateisystem zuzugreifen, Prozesse zu starten und node:worker_threads zu verwenden.

Entwickler, die Node.js verwenden, haben jetzt mit der Einführung der Flags --allow-fs-read und --allow-fs-write mehr Kontrolle über den Zugriff auf das Dateisystem. Diese experimentellen Funktionen ermöglichen eine genauere Kontrolle darüber, auf welche Teile des Dateisystems Node.js-Prozesse zugreifen können.

Um diese Flags zu aktivieren, können Entwickler das Flag --experimental-permission mit den gewünschten Berechtigungen verwenden. Wenn Sie beispielsweise den folgenden Befehl ausführen, erhalten Sie Lese- und Schreibzugriff auf das gesamte Dateisystem:

$ node --experimental-permission --allow-fs-read=* --allow-fs-write=* index.js

Entwickler können auch bestimmte Pfade für den Zugriff auf das Dateisystem angeben, indem sie kommagetrennte Werte an Flags übergeben. Der folgende Befehl ermöglicht beispielsweise den Schreibzugriff auf den Ordner /tmp/:

$ node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read=/home/index.js index.js

Generische Muster können auch verwendet werden, um den Zugriff auf mehrere Dateien oder Ordner gleichzeitig zu ermöglichen. Der folgende Befehl ermöglicht beispielsweise den Lesezugriff auf alle Dateien und Ordner im /home/-Verzeichnis, beginnend mit test:

$ node --experimental-permission --allow-fs-read=/home/test* index.js

Wenn das Berechtigungsmodell aktiviert ist, kann die neue Berechtigungseigenschaft des Prozessobjekts verwendet werden, um zu prüfen, ob eine bestimmte Berechtigung zur Laufzeit erteilt wurde.

process.permission.has('fs.write'); // WAHR process.permission.has('fs.write', '/home/nodejs/protected-folder'); // WAHR

Es ist wichtig zu beachten, dass diese Funktionen noch experimentell sind und sich in zukünftigen Versionen von Node.js ändern können

Zusätzlich finden Sie weitere Informationen in der Dokumentation zum Autorisierungsmodell.

Das Berechtigungsmodell wurde von Rafael Gonzaga in #44004 beigesteuert.

Nahezu stabile Custom ESM Magazinhaken

Lebenszyklus-Hooks für benutzerdefinierte ES-Module, die über Ladeprogramme (--experimental-loader=./foo.mjs) bereitgestellt werden, werden jetzt in einem dedizierten Thread ausgeführt, der vom Haupt-Thread isoliert ist. Dies stellt einen separaten Bereich für Ladeprogramme bereit und stellt sicher, dass es keine Kreuzkontamination zwischen Ladeprogrammen und Anwendungscode gibt.

Wie im Browserverhalten kehrt import.meta.resolve() jetzt synchron zurück; Beachten Sie, dass das Lösen ...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow