前言:欢迎来到 Node.js 20
Node.js 20 已经发布,带来了创新和激动人心的新时代。这个开创性的版本于2023年4月18日首次亮相,并将在2023年10月发布长期支持(LTS)版本,并且将持续支持至2026年4月,下面小编就为大家介绍一下Node.js20的几个新特性:
1.Node.js 权限访问
Node.js 20 正式推出了权限模型,这是 Rafael Gonzaga 提供的一项实验性功能,可以在程序运行时限制对特定资源的访问。
要使用这个强大的功能,只需启用 --experimental-permission 标志,例如:
node --experimental-permissions myApp.js
这将限制所有可用权限的访问,这样就可以确保应用程序远离任何不受欢迎的入侵者。
文件读写系统
要允许访问文件系统,请使用--allow-fs-read和 --allow-fs-write标志:
$ node --experimental-permission --allow-fs-read=* --allow-fs-write=* index.js
Hello world!
(node:19836) ExperimentalWarning: Permission is an experimental feature
(Use node --trace-warnings ...
to show where the warning was created)
下面是具体指令的含义:
--allow-fs-read=*- 它将允许所有FileSystemRead操作。
--allow-fs-write=*- 它将允许所有FileSystemWrite操作。
--allow-fs-write=/tmp/- 它将允许FileSystemWrite访问该/tmp/ 文件夹。
--allow-fs-read=/tmp/,/home/.gitignore- 它允许FileSystemRead访问/tmp/文件夹和路径/home/.gitignore。
2.自定义 ESM 加载器钩子
Node.js 20通过加载器提供的自定义钩子
(--experimental-loader=./mr.mjs)在专用线程上运行,确保一切都保持井然有序。
以下是如何使用自定义加载器的快速示例:
loading.mjs
export async function resolve(specifier, parentModuleURL, defaultResolve) {
console.log("Resolving:", specifier);
return defaultResolve(specifier, parentModuleURL);
}
export async function load(url, defaul
标签:总结,Node,fs,21,--,js,allow,experimental From: https://www.cnblogs.com/lmyy/p/17719717.html