Node.js v20.6 a été publié avec de nouvelles fonctionnalités étonnantes qui font partie des versions LTS à partir du 24 octobre 2023. Voyons voir !
Dites adieu au package dotenv, Node.js peut désormais charger des variables d'environnement à partir d'un fichier .env.
node --env-file path/to/.env index.js
? Le chemin d'accès au fichier INI est obligatoire car Node.js n'a pas choisi de nom par défaut pour le fichier INI.
? Si le fichier INI n'existe pas, le processus de nœud n'a pas échoué, démarrez simplement son exécution sans les variables d'environnement.
Vous pouvez charger les variables d'environnement spécifiques de Node.js (comme NODE_OPTIONS) à l'aide d'un fichier de configuration INI comme dans l'exemple suivant :
NODE_NO_WARNINGS=1 NODE_OPTIONS="--experimental-permission --allow-fs-read=*" TZ=Pacific/Honolulu UV_THREADPOOL_SIZE=5
Vous pouvez l'utiliser avec la même méthode :
node --env-file .env index.js
Préchargez les modules ES au démarrage à l'aide de l'indicateur --import, le module sera chargé avant l'exécution de tout code d'application, même le point d'entrée.
node --import path/to/file.js index.js
Cet indicateur est similaire à l'indicateur --require bien connu utilisé pour charger les modules CommonJS.
? Les modules préchargés avec --require s'exécuteront avant les modules préchargés avec --import.
Nous disposons d'un nouveau mécanisme pour restreindre l'accès à des ressources spécifiques lors de l'exécution d'un processus Node.js appelé Permission Model. L'API existe derrière un indicateur --experimental-permission qui, lorsqu'il est activé, restreindra l'accès à toutes les ressources non explicitement autorisées.
L'indicateur --allow-fs-read autorise toutes les opérations FileSystemRead utilisant *, ou vers des chemins spécifiques utilisant des routes absolues.
node --experimental-permission --allow-fs-read=* index.js
Pour autoriser uniquement l'accès à des chemins spécifiques, vous devez utiliser des routes absolues
node --experimental-permission --allow-fs-read=/path/to/index.js --allow-fs-read=/path/to/directory index.js
? Le module d'initialisation doit également être autorisé. Sinon, le fichier index.js ne peut pas être chargé par le processus Node.js lui-même.
? Vous pouvez utiliser . pour autoriser l'accès au répertoire de travail, mais vous ne pouvez pas l'utiliser pour spécifier le chemin d'accès à un fichier (par exemple ./index.js).
node --experimental-permission --allow-fs-read=. index.js
L'indicateur --allow-fs-write permet d'accéder à des chemins spécifiques ou à l'ensemble du système de fichiers en utilisant *.
node --experimental-permission --allow-fs-read=. --allow-fs-write=/tmp/ index.js
Lorsque le modèle d'autorisation est activé, le processus ne pourra générer aucun processus enfant par défaut, vous devez utiliser le --allow-child-process pour autoriser cette opération. Utilisons le code suivant pour index.js.
const childProcess = require('node:child_process'); childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("./new-file.txt", "Hello, World!")']);
Pour exécuter cet extrait avec le modèle d'autorisation activé, vous devez exécuter index.js à l'aide de la commande suivante :
node --experimental-permission --allow-fs-read . --allow-child-process index.js
? Le processus enfant n'hérite pas du modèle d'autorisation par défaut, c'est pourquoi le new-file.txt est créé avec succès.
Vous pouvez cocher l'indicateur --allow-worker si vous souhaitez créer des threads de travail sous ce modèle d'autorisation et --allow-wasi pour autoriser la création d'instances WASI
Nous disposons de nombreux nouveaux outils pour charger les variables d'environnement de notre application, d'une méthode pour importer les modules ES de préchargement requis dans notre code et d'un nouveau modèle d'autorisation pour augmenter la sécurité de nos systèmes.
Restez à l'écoute du blog de Node.js, cette équipe ajoute des fonctionnalités géniales dans chaque version ! Nous disposons d'un support initial de TypeScript et d'une inspection du réseau à l'aide des DevTools dans la version 22.6.0.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3