- assert 断言
- async_hooks 异步钩子
- async_hooks/context 异步上下文
- buffer 缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process 子进程
- cluster 集群
- CLI 命令行
- console 控制台
- Corepack 核心包
- crypto 加密
- crypto/webcrypto 网络加密
- debugger 调试器
- deprecation 弃用
- dgram 数据报
- diagnostics_channel 诊断通道
- dns 域名服务器
- domain 域
- Error 错误
- events 事件触发器
- fs 文件系统
- global 全局变量
- http 超文本传输协议
- http2 超文本传输协议2.0
- https 安全超文本传输协议
- inspector 检查器
- Intl 国际化
- module 模块
- module/cjs CommonJS模块
- module/esm ECMAScript模块
- module/package 包模块
- net 网络
- os 操作系统
- path 路径
- perf_hooks 性能钩子
- permission 权限
- process 进程
- punycode 域名代码
- querystring 查询字符串
- readline 逐行读取
- repl 交互式解释器
- report 诊断报告
- sea 单个可执行应用程序
- stream 流
- stream/web 网络流
- string_decoder 字符串解码器
- test 测试
- timers 定时器
- tls 安全传输层
- trace_events 跟踪事件
- tty 终端
- url 网址
- util 实用工具
- v8 引擎
- vm 虚拟机
- wasi 网络汇编系统接口
- worker_threads 工作线程
- zlib 压缩
Node.js v20.3.1 文档
- Node.js v20.3.1
-
►
目录
- 命令行 API
- 概要
- 程序入口点
- 选项
-
--
--abort-on-uncaught-exception
--allow-child-process
--allow-fs-read
--allow-fs-write
--allow-worker
--build-snapshot
--completion-bash
-C condition
、--conditions=condition
--cpu-prof
--cpu-prof-dir
--cpu-prof-interval
--cpu-prof-name
--diagnostic-dir=directory
--disable-proto=mode
--disallow-code-generation-from-strings
--dns-result-order=order
--enable-fips
--no-network-family-autoselection
--enable-source-maps
--experimental-import-meta-resolve
--experimental-loader=module
--experimental-network-imports
--experimental-permission
--experimental-policy
--no-experimental-fetch
--no-experimental-global-webcrypto
--no-experimental-global-customevent
--no-experimental-repl-await
--experimental-sea-config
--experimental-shadow-realm
--experimental-test-coverage
--experimental-vm-modules
--experimental-wasi-unstable-preview1
--experimental-wasm-modules
--force-context-aware
--force-fips
--frozen-intrinsics
--force-node-api-uncaught-exceptions-policy
--heapsnapshot-near-heap-limit=max_count
--heapsnapshot-signal=signal
--heap-prof
--heap-prof-dir
--heap-prof-interval
--heap-prof-name
--icu-data-dir=file
--import=module
--input-type=type
--inspect-brk[=[host:]port]
--inspect-port=[host:]port
--inspect[=[host:]port]
--inspect-publish-uid=stderr,http
--insecure-http-parser
--jitless
--max-http-header-size=size
--napi-modules
--no-addons
--no-deprecation
--no-extra-info-on-fatal-exception
--no-force-async-hooks-checks
--no-global-search-paths
--no-warnings
--node-memory-debug
--openssl-config=file
--openssl-shared-config
--openssl-legacy-provider
--pending-deprecation
--policy-integrity=sri
--preserve-symlinks
--preserve-symlinks-main
--prof
--prof-process
--redirect-warnings=file
--report-compact
--report-dir=directory
、report-directory=directory
--report-filename=filename
--report-on-fatalerror
--report-on-signal
--report-signal=signal
--report-uncaught-exception
--secure-heap=n
--secure-heap-min=n
--snapshot-blob=path
--test
--test-name-pattern
--test-reporter
--test-reporter-destination
--test-only
--throw-deprecation
--title=title
--tls-cipher-list=list
--tls-keylog=file
--tls-max-v1.2
--tls-max-v1.3
--tls-min-v1.0
--tls-min-v1.1
--tls-min-v1.2
--tls-min-v1.3
--trace-atomics-wait
--trace-deprecation
--trace-event-categories
--trace-event-file-pattern
--trace-events-enabled
--trace-exit
--trace-sigint
--trace-sync-io
--trace-tls
--trace-uncaught
--trace-warnings
--track-heap-objects
--unhandled-rejections=mode
--use-bundled-ca
、--use-openssl-ca
--use-largepages=mode
--v8-options
--v8-pool-size=num
--watch
--watch-path
--watch-preserve-output
--zero-fill-buffers
-c
、--check
-e
、--eval "script"
-h
、--help
-i
、--interactive
-p
、--print "script"
-r
、--require module
-v
、--version
- 环境变量
FORCE_COLOR=[1, 2, 3]
NODE_DEBUG=module[,…]
NODE_DEBUG_NATIVE=module[,…]
NODE_DISABLE_COLORS=1
NODE_EXTRA_CA_CERTS=file
NODE_ICU_DATA=file
NODE_NO_WARNINGS=1
NODE_OPTIONS=options...
NODE_PATH=path[:…]
NODE_PENDING_DEPRECATION=1
NODE_PENDING_PIPE_INSTANCES=instances
NODE_PRESERVE_SYMLINKS=1
NODE_REDIRECT_WARNINGS=file
NODE_REPL_HISTORY=file
NODE_REPL_EXTERNAL_MODULE=file
NODE_SKIP_PLATFORM_CHECK=value
NODE_TEST_CONTEXT=value
NODE_TLS_REJECT_UNAUTHORIZED=value
NODE_V8_COVERAGE=dir
NO_COLOR=<any>
OPENSSL_CONF=file
SSL_CERT_DIR=dir
SSL_CERT_FILE=file
TZ
UV_THREADPOOL_SIZE=size
- 有用的 V8 选项
- 命令行 API
-
►
导航
- assert 断言
- async_hooks 异步钩子
- async_hooks/context 异步上下文
- buffer 缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process 子进程
- cluster 集群
- CLI 命令行
- console 控制台
- Corepack 核心包
- crypto 加密
- crypto/webcrypto 网络加密
- debugger 调试器
- deprecation 弃用
- dgram 数据报
- diagnostics_channel 诊断通道
- dns 域名服务器
- domain 域
- Error 错误
- events 事件触发器
- fs 文件系统
- global 全局变量
- http 超文本传输协议
- http2 超文本传输协议2.0
- https 安全超文本传输协议
- inspector 检查器
- Intl 国际化
- module 模块
- module/cjs CommonJS模块
- module/esm ECMAScript模块
- module/package 包模块
- net 网络
- os 操作系统
- path 路径
- perf_hooks 性能钩子
- permission 权限
- process 进程
- punycode 域名代码
- querystring 查询字符串
- readline 逐行读取
- repl 交互式解释器
- report 诊断报告
- sea 单个可执行应用程序
- stream 流
- stream/web 网络流
- string_decoder 字符串解码器
- test 测试
- timers 定时器
- tls 安全传输层
- trace_events 跟踪事件
- tty 终端
- url 网址
- util 实用工具
- v8 引擎
- vm 虚拟机
- wasi 网络汇编系统接口
- worker_threads 工作线程
- zlib 压缩
- ► 其他版本
环境变量#
FORCE_COLOR=[1, 2, 3]
#
FORCE_COLOR
环境变量用于启用 ANSI 彩色输出。 值可能是:
1
、true
、或空字符串''
表示支持 16 色,2
表示支持 256 色,或3
表示支持 1600 万色。
当使用 FORCE_COLOR
并设置为支持的值时,NO_COLOR
和 NODE_DISABLE_COLORS
环境变量都将被忽略。
任何其他值都会导致彩色输出被禁用。
NODE_DEBUG=module[,…]
#
','
分隔的应该打印调试信息的核心模块的列表。
NODE_DEBUG_NATIVE=module[,…]
#
','
分隔的应打印调试信息的核心 C++ 模块的列表。
NODE_DISABLE_COLORS=1
#
当设置时,颜色将不会在交互式解释器中使用。
NODE_EXTRA_CA_CERTS=file
#
设置后,众所周知的 "root" CA(如 VeriSign)将使用 file
中的额外证书进行扩展。 该文件应包含一个或多个 PEM 格式的可信证书。 如果文件丢失或格式不正确,则将使用 process.emitWarning()
触发消息消息(一次),否则将忽略任何错误。
当为 TLS 或 HTTPS 客户端或服务器显式指定 ca
选项属性时,则既不会使用众所周知的证书,也不会使用额外的证书。
当 node
作为 setuid root 运行或设置了 Linux 文件功能时,则将忽略此环境变量。
NODE_EXTRA_CA_CERTS
环境变量仅在 Node.js 进程第一次启动时读取。 在运行时使用 process.env.NODE_EXTRA_CA_CERTS
更改值对当前进程没有影响。
NODE_ICU_DATA=file
#
ICU (Intl
对象) 数据的数据路径。 在使用 small-icu 支持编译时将扩展链接数据。
NODE_NO_WARNINGS=1
#
当设置为 1
时,则静默进程警告。
NODE_OPTIONS=options...
#
以空格分隔的命令行选项列表 options...
在命令行选项之前被解释,因此命令行选项将覆盖或复合在 options...
中的任何内容之后。 如果使用环境中不允许的选项(例如 -p
或脚本文件),Node.js 将退出并出错。
如果选项值包含空格,则可以使用双引号转义:
NODE_OPTIONS='--require "./my path/file.js"'
作为命令行选项传入的单例标志将覆盖传给 NODE_OPTIONS
的相同标志:
# The inspector will be available on port 5555
NODE_OPTIONS='--inspect=localhost:4444' node --inspect=localhost:5555
可以多次传入的标志将被视为首先传入其 NODE_OPTIONS
实例,然后是其命令行实例:
NODE_OPTIONS='--require "./a.js"' node --require "./b.js"
# is equivalent to:
node --require "./a.js" --require "./b.js"
允许的 Node.js 选项是:
--allow-child-process
--allow-fs-read
--allow-fs-write
--allow-worker
--conditions
、-C
--diagnostic-dir
--disable-proto
--dns-result-order
--enable-fips
--enable-network-family-autoselection
--enable-source-maps
--experimental-abortcontroller
--experimental-import-meta-resolve
--experimental-json-modules
--experimental-loader
--experimental-modules
--experimental-network-imports
--experimental-permission
--experimental-policy
--experimental-shadow-realm
--experimental-specifier-resolution
--experimental-top-level-await
--experimental-vm-modules
--experimental-wasi-unstable-preview1
--experimental-wasm-modules
--force-context-aware
--force-fips
--force-node-api-uncaught-exceptions-policy
--frozen-intrinsics
--heapsnapshot-near-heap-limit
--heapsnapshot-signal
--http-parser
--icu-data-dir
--import
--input-type
--insecure-http-parser
--inspect-brk
--inspect-port
、--debug-port
--inspect-publish-uid
--inspect
--max-http-header-size
--napi-modules
--no-addons
--no-deprecation
--no-experimental-fetch
--no-experimental-global-customevent
--no-experimental-global-webcrypto
--no-experimental-repl-await
--no-extra-info-on-fatal-exception
--no-force-async-hooks-checks
--no-global-search-paths
--no-network-family-autoselection
--no-warnings
--node-memory-debug
--openssl-config
--openssl-legacy-provider
--openssl-shared-config
--pending-deprecation
--policy-integrity
--preserve-symlinks-main
--preserve-symlinks
--prof-process
--redirect-warnings
--report-compact
--report-dir
、--report-directory
--report-filename
--report-on-fatalerror
--report-on-signal
--report-signal
--report-uncaught-exception
--require
、-r
--secure-heap-min
--secure-heap
--snapshot-blob
--test-only
--test-reporter-destination
--test-reporter
--throw-deprecation
--title
--tls-cipher-list
--tls-keylog
--tls-max-v1.2
--tls-max-v1.3
--tls-min-v1.0
--tls-min-v1.1
--tls-min-v1.2
--tls-min-v1.3
--trace-atomics-wait
--trace-deprecation
--trace-event-categories
--trace-event-file-pattern
--trace-events-enabled
--trace-exit
--trace-sigint
--trace-sync-io
--trace-tls
--trace-uncaught
--trace-warnings
--track-heap-objects
--unhandled-rejections
--use-bundled-ca
--use-largepages
--use-openssl-ca
--v8-pool-size
--watch-path
--watch-preserve-output
--watch
--zero-fill-buffers
允许的 V8 选项是:
--abort-on-uncaught-exception
--disallow-code-generation-from-strings
--enable-etw-stack-walking
--huge-max-old-generation-size
--interpreted-frames-native-stack
--jitless
--max-old-space-size
--max-semi-space-size
--perf-basic-prof-only-functions
--perf-basic-prof
--perf-prof-unwinding-info
--perf-prof
--stack-trace-limit
--perf-basic-prof-only-functions
、--perf-basic-prof
、--perf-prof-unwinding-info
和 --perf-prof
仅在 Linux 上可用。
--enable-etw-stack-walking
仅适用于 Windows。
NODE_PATH=path[:…]
#
':'
分隔的目录列表,以模块搜索路径为前缀。
在 Windows 上,这是 ';'
分隔的列表。
NODE_PENDING_DEPRECATION=1
#
当设置为 1
时,触发挂起的弃用警告。
待处理弃用通常与运行时弃用相同,但值得注意的例外是它们在默认情况下处于关闭状态,除非设置 --pending-deprecation
命令行标志或 NODE_PENDING_DEPRECATION=1
环境变量,否则不会触发。 待弃用用于提供一种选择性的 "预先警告" 机制,开发者可以利用该机制来检测已弃用的 API 使用情况。
NODE_PENDING_PIPE_INSTANCES=instances
#
设置管道服务器等待连接时挂起的管道实例句柄数。 此设置仅适用于 Windows。
NODE_PRESERVE_SYMLINKS=1
#
当设置为 1
时,指示模块加载器在解析和缓存模块时保留符号链接。
NODE_REDIRECT_WARNINGS=file
#
当设置时,进程警告将触发到给定文件而不是打印到标准错误 如果文件不存在则创建,如果存在则追加。 如果在尝试将警告写入文件时发生错误,则警告将改为写入标准错误。 这相当于使用 --redirect-warnings=file
命令行标志。
NODE_REPL_HISTORY=file
#
用于存储持久的交互式解释器历史的文件路径。 默认路径是 ~/.node_repl_history
,会被此变量覆盖。 将值设置为空字符串(''
或 ' '
)会禁用持久的交互式解释器历史记录。
NODE_REPL_EXTERNAL_MODULE=file
#
Node.js 模块的路径,该模块将代替内置交互式解释器加载。
将此值覆盖为空字符串 (''
) ,则将使用内置的交互式解释器。
NODE_SKIP_PLATFORM_CHECK=value
#
如果 value
等于 '1'
,则在 Node.js 启动期间跳过对支持平台的检查。 Node.js 可能无法正确地执行。 在不受支持的平台上遇到的任何问题都不会得到修复。
NODE_TEST_CONTEXT=value
#
如果 value
等于 'child'
,测试报告选项将被覆盖,测试输出将以 TAP 格式发送到标准输出。 如果提供任何其他值,Node.js 不保证所使用的报告格式或其稳定性。
NODE_TLS_REJECT_UNAUTHORIZED=value
#
如果 value
等于 '0'
,则对 TLS 连接禁用证书验证。
这使得 TLS 和 HTTPS 不安全。 强烈建议不要使用此环境变量。
NODE_V8_COVERAGE=dir
#
设置后,Node.js 将开始将 V8 JavaScript 代码覆盖率 和 源映射 数据输出到作为参数提供的目录(覆盖信息以 JSON 格式写入具有 coverage
前缀的文件)。
NODE_V8_COVERAGE
将自动传播到子进程,从而更容易检测调用 child_process.spawn()
系列函数的应用。 NODE_V8_COVERAGE
可以设置为空字符串,防止传播。
覆盖输出#
覆盖率作为顶层键 result
上的 ScriptCoverage 对象数组输出:
{
"result": [
{
"scriptId": "67",
"url": "internal/tty.js",
"functions": []
}
]
}
源映射缓存#
如果找到,则源映射数据将附加到 JSON 覆盖对象上的顶层键 source-map-cache
。
source-map-cache
是一个对象,其中的键代表从中提取源映射的文件,其值包括原始源映射网址(在键 url
中)、解析的 Source Map v3 信息(在键 data
中)和行长度源文件(在键 lineLengths
中)。
{
"result": [
{
"scriptId": "68",
"url": "file:///absolute/path/to/source.js",
"functions": []
}
],
"source-map-cache": {
"file:///absolute/path/to/source.js": {
"url": "./path-to-map.json",
"data": {
"version": 3,
"sources": [
"file:///absolute/path/to/original.js"
],
"names": [
"Foo",
"console",
"info"
],
"mappings": "MAAMA,IACJC,YAAaC",
"sourceRoot": "./"
},
"lineLengths": [
13,
62,
38,
27
]
}
}
}
NO_COLOR=<any>
#
NO_COLOR
是 NODE_DISABLE_COLORS
的别名。 环境变量的值是任意的。
OPENSSL_CONF=file
#
在启动时加载 OpenSSL 配置文件。 除其他用途外,如果 Node.js 是使用 ./configure --openssl-fips
构建的,则可用于启用符合 FIPS 的加密。
如果使用 --openssl-config
命令行选项,则环境变量将被忽略。
SSL_CERT_DIR=dir
#
如果启用了 --use-openssl-ca
,则将覆盖并设置包含受信任证书的 OpenSSL 目录。
注意,除非显式设置子环境,否则任何子进程都会继承此环境变量,如果它们使用 OpenSSL,可能会导致它们信任与节点相同的 CA。
SSL_CERT_FILE=file
#
如果启用了 --use-openssl-ca
,则将覆盖并设置包含受信任证书的 OpenSSL 文件。
注意,除非显式设置子环境,否则任何子进程都会继承此环境变量,如果它们使用 OpenSSL,可能会导致它们信任与节点相同的 CA。
TZ
#
TZ
环境变量用于指定时区配置。
虽然 Node.js 不支持所有各种 TZ
在其他环境中的处理方式,但它支持基本的 时区 ID(例如 'Etc/UTC'
、'Europe/Paris'
或 'America/New_York'
)。
它可能支持其他一些缩写或别名,但强烈建议不要使用这些缩写或别名,并且不能保证。
$ TZ=Europe/Dublin node -pe "new Date().toString()"
Wed May 12 2021 20:30:48 GMT+0100 (Irish Standard Time)
UV_THREADPOOL_SIZE=size
#
将 libuv 的线程池中使用的线程数设置为 size
个线程。
Node.js 尽可能使用异步的系统 API,但在它们不存在的情况下,libuv 的线程池用于基于同步的系统 API 创建异步的 node API。 使用线程池的 Node.js API 有:
- 所有
fs
API,除了文件监视器 API 和那些显式同步的 - 异步加密 API,例如
crypto.pbkdf2()
、crypto.scrypt()
、crypto.randomBytes()
、crypto.randomFill()
、crypto.generateKeyPair()
dns.lookup()
- 所有
zlib
API,除了那些显式同步的
因为 libuv 的线程池有固定的大小,这意味着如果这些 API 中的任何一个由于某种原因需要很长时间,则在 libuv 的线程池中运行的其他(看似无关的)API 的性能将会下降。 为了缓解此问题,潜在的解决方案是通过将 'UV_THREADPOOL_SIZE'
环境变量设置为大于 4
(其当前默认值)的值来增加 libuv 线程池的大小。 有关详细信息,请参阅 libuv 线程池文档。