process.allowedNodeEnvironmentFlags
- 类型: <Set>
process.allowedNodeEnvironmentFlags 属性是一个特殊的、只读的 Set,包含 NODE_OPTIONS 环境变量中允许的标志。
【The process.allowedNodeEnvironmentFlags property is a special,
read-only Set of flags allowable within the NODE_OPTIONS
environment variable.】
process.allowedNodeEnvironmentFlags 扩展了 Set,但重写了 Set.prototype.has,以识别几种不同的标志表示方式。在以下情况下,process.allowedNodeEnvironmentFlags.has() 将返回 true:
- 标志可以省略前导的单个(
-)或双(--)破折号;例如,inspect-brk表示--inspect-brk,或r表示-r。 - 传递给 V8 的标志(如
--v8-options中列出)可以将一个或多个非前导破折号替换为下划线,反之亦然; 例如,--perf_basic_prof、--perf-basic-prof、--perf_basic-prof等。 - 标志可以包含一个或多个等号(
=);第一次出现的等号及其之后的所有字符将被忽略; 例如,--stack-trace-limit=100。 - 标志必须在
NODE_OPTIONS中允许使用。
在迭代 process.allowedNodeEnvironmentFlags 时,标志只会出现一次;每个标志都以一个或多个短横线开头。传递给 V8 的标志会使用下划线代替非前导的短横线:
【When iterating over process.allowedNodeEnvironmentFlags, flags will
appear only once; each will begin with one or more dashes. Flags
passed through to V8 will contain underscores instead of non-leading
dashes:】
import { allowedNodeEnvironmentFlags } from 'node:process';
allowedNodeEnvironmentFlags.forEach((flag) => {
// -r
// --inspect-brk
// --abort_on_uncaught_exception
// ...
});const { allowedNodeEnvironmentFlags } = require('node:process');
allowedNodeEnvironmentFlags.forEach((flag) => {
// -r
// --inspect-brk
// --abort_on_uncaught_exception
// ...
});process.allowedNodeEnvironmentFlags 的 add()、clear() 和 delete() 方法不起作用,并且会悄无声息地失败。
【The methods add(), clear(), and delete() of
process.allowedNodeEnvironmentFlags do nothing, and will fail
silently.】
如果 Node.js 在编译时不支持 NODE_OPTIONS(如 process.config 所示),process.allowedNodeEnvironmentFlags 将包含本应允许的内容。
【If Node.js was compiled without NODE_OPTIONS support (shown in
process.config), process.allowedNodeEnvironmentFlags will
contain what would have been allowable.】