Node.js v20.6 wurde mit erstaunlichen neuen Funktionen veröffentlicht, die ab dem 24. Oktober 2023 Teil der LTS-Versionen sind. Mal sehen!
Verabschieden Sie sich vom dotenv-Paket, jetzt kann Node.js Umgebungsvariablen aus einer .env-Datei laden.
node --env-file path/to/.env index.js
? Der Pfad zur INI-Datei ist erforderlich, da Node.js keinen Standardnamen für die INI-Datei gewählt hat.
? Wenn die INI-Datei nicht vorhanden ist, ist der Knotenprozess nicht fehlgeschlagen. Beginnen Sie einfach mit der Ausführung ohne die Umgebungsvariablen.
Sie können die spezifischen Umgebungsvariablen von Node.js (wie NODE_OPTIONS) mithilfe einer INI-Konfigurationsdatei wie im folgenden Beispiel laden:
NODE_NO_WARNINGS=1 NODE_OPTIONS="--experimental-permission --allow-fs-read=*" TZ=Pacific/Honolulu UV_THREADPOOL_SIZE=5
Sie können dies mit derselben Methode verwenden:
node --env-file .env index.js
Laden Sie ES-Module beim Start mit dem Flag --import vor. Das Modul wird geladen, bevor Anwendungscode ausgeführt wird, auch vor dem Einstiegspunkt.
node --import path/to/file.js index.js
Dieses Flag ähnelt dem bekannten Flag --require, das zum Laden von CommonJS-Modulen verwendet wird.
? Module, die mit --require vorinstalliert wurden, werden vor Modulen ausgeführt, die mit --import vorinstalliert wurden.
Wir haben einen neuen Mechanismus namens Permission Model, um den Zugriff auf bestimmte Ressourcen während der Ausführung eines Node.js-Prozesses einzuschränken. Die API existiert hinter einem Flag --experimental-permission, das, wenn es aktiviert ist, den Zugriff auf alle nicht explizit erlaubten Ressourcen einschränkt.
Das Flag --allow-fs-read ermöglicht alle FileSystemRead-Vorgänge mit * oder auf bestimmte Pfade mit absoluten Routen.
node --experimental-permission --allow-fs-read=* index.js
Um nur den Zugriff auf bestimmte Pfade zu ermöglichen, sollten Sie absolute Routen verwenden
node --experimental-permission --allow-fs-read=/path/to/index.js --allow-fs-read=/path/to/directory index.js
? Das Initialisierungsmodul muss ebenfalls zugelassen sein. Andernfalls kann die Datei index.js nicht vom Node.js-Prozess selbst geladen werden.
? Sie können verwenden. um den Zugriff auf das Arbeitsverzeichnis zu ermöglichen, aber Sie können damit nicht den Pfad zu einer Datei angeben (z. B. ./index.js).
node --experimental-permission --allow-fs-read=. index.js
Das Flag --allow-fs-write ermöglicht den Zugriff auf bestimmte Pfade oder das gesamte Dateisystem mit *.
node --experimental-permission --allow-fs-read=. --allow-fs-write=/tmp/ index.js
Wenn das Berechtigungsmodell aktiviert ist, kann der Prozess standardmäßig keinen untergeordneten Prozess erzeugen. Sie sollten den --allow-child-process verwenden, um diesen Vorgang zuzulassen. Lassen Sie uns den folgenden Code für index.js verwenden.
const childProcess = require('node:child_process'); childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("./new-file.txt", "Hello, World!")']);
Um dieses Snippet mit aktiviertem Berechtigungsmodell auszuführen, sollten Sie index.js mit dem folgenden Befehl ausführen:
node --experimental-permission --allow-fs-read . --allow-child-process index.js
? Der untergeordnete Prozess erbt standardmäßig nicht das Berechtigungsmodell, deshalb wird die Datei „new-file.txt“ erfolgreich erstellt.
Sie können das Flag --allow-worker aktivieren, wenn Sie Worker-Threads unter diesem Berechtigungsmodell erstellen möchten, und --allow-wasi, um die Erstellung von WASI-Instanzen zuzulassen
Wir haben viele neue Tools zum Laden von Umgebungsvariablen für unsere Anwendung, eine Methode zum Importieren der in unserem Code erforderlichen ES-Module vorab laden und ein neues Berechtigungsmodell, um die Sicherheit unserer Systeme zu erhöhen.
Bleiben Sie auf dem Laufenden über den Node.js-Blog, dieses Team fügt in jeder Version tolle Funktionen hinzu! Wir haben anfängliche TypeScript-Unterstützung und eine Netzwerkinspektion mit den DevTools in v22.6.0.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3