- 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/cjsCommonJS模块
- module/esmECMAScript模块
- module/package包模块
- net网络
- os操作系统
- path路径
- perf_hooks性能钩子
- policy安全策略
- process进程
- punycode域名代码
- querystring查询字符串
- readline逐行读取
- repl交互式解释器
- report诊断报告
- stream流
- stream/web网络流
- string_decoder字符串解码器
- test测试
- timers定时器
- tls安全传输层
- trace_events跟踪事件
- tty终端
- url网址
- util实用工具
- v8引擎
- vm虚拟机
- wasi网络汇编系统接口
- worker_threads工作线程
- zlib压缩
Node.js v18.7.0 文档
- Node.js 18.7.0
- ► 目录
-
►
索引
- 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 性能钩子
- policy 安全策略
- process 进程
- punycode 域名代码
- querystring 查询字符串
- readline 逐行读取
- repl 交互式解释器
- report 诊断报告
- stream 流
- stream/web 网络流
- string_decoder 字符串解码器
- test 测试
- timers 定时器
- tls 安全传输层
- trace_events 跟踪事件
- tty 终端
- url 网址
- util 实用工具
- v8 引擎
- vm 虚拟机
- wasi 网络汇编系统接口
- worker_threads 工作线程
- zlib 压缩
- ► 其他版本
- 文档搜索
- 会员登录
policy 安全策略#
Node.js 包含了对创建加载代码的策略的实验性支持。
启用#
--experimental-policy
标志可用于在加载模块时启用策略特性。
特性#
错误的行为#
当策略检查失败时,Node.js 默认会抛出错误。 通过在策略清单中定义 “onerror” 字段,可以将错误行为更改为几种可能性之一。 以下值可用于更改行为:
完整性检查#
策略文件必须使用与绝对 URL 关联的浏览器完整性属性兼容的子资源完整性字符串的完整性检查。
依赖项重定向#
应用程序可能需要发布模块的补丁版本或阻止模块允许所有模块访问所有其他模块。 可以通过拦截加载希望被替换的模块的尝试来使用重定向。
示例:修补依赖项#
重定向的依赖可以提供适合应用程序的衰减或修改功能。 例如,通过封装原始记录有关函数持续时间的计时数据:
作用域#
使用清单的 "scopes"
字段一次设置多个资源的配置。
"scopes"
字段的工作原理是按片段匹配资源。
如果范围或资源包含 "cascade": true
,则将在其包含范围内搜索未知说明符。
通过删除特殊方案的片段、保留尾随 "/"
后缀、以及删除查询和哈希片段来递归地减少资源 URL,可以找到级联的包含范围。
这导致 URL 最终减少到其来源。
如果 URL 是非特殊的,则范围将由 URL 的来源定位。
如果没有找到源的范围或在不透明源的情况下,可以使用协议字符串作为范围。
如果没有找到 URL 协议的范围,将使用最终的空字符串 ""
范围。
示例#
给定一个位于 file:///C:/app/bin/main.js
的文件,将按顺序检查以下范围:
使用作用域的完整性检查#
在范围上将完整性设置为 true
会将清单中未找到的任何资源的完整性设置为 true
。
使用作用域的依赖项重定向#
以下示例将允许 ./app/
内的所有资源访问 fs
:
示例:导入映射模拟#import maps
给定导入映射: