@ fluidframework/调试器
Fluid 调试器是重放文件历史的有用工具. 这可作为学习工具以及调查腐败或业绩问题的工具,或作为内容回收工具。 它提供只读的文档和从特定快照开始(或根本没有快照)的能力,并逐一播放操作,或大批次播放.
Fluid 调试器在任意文档存储的上方作为适配器工作. 换句话说,它可以使用任何存储端点(如SPO或路由器)集成到任何应用程序中,对应用程序的修改最小,并且可以用来以完整的应用程序代码运行来重放历史,从而帮助调查任何层应用程序堆栈中的错误
使用 Fluid 框架库
对于依赖流体框架库的公共API,我们建议 ^ (caret)版本范围.
例如,使用 ^1.3.4。 。 。 .
依赖不稳定的API,例如: beta API,我们推荐一个更具限制性的版本范围.
例如,使用一个 ~ 版本范围.
安装
运行此命令以安装软件包 :
npm i @fluidframework/debugger
从此软件包导入
此软件包使用 packet.json 导出 通过支持级别将API分离. 有关支助保障的信息改为: API 支持级别。 。 。 .
导入 public API 从 @fluidframework/debugger。 。 。 .
导入 legacy API 从 @fluidframework/debugger/legacy。 。 。 .
API 文档
读取 @ fluidframework/调试器 API 文档 https://fluidframework.com/docs/apis/debugger (中文(简体) )。 。 。 .
如何启用
为了使用它,需要进行这些修改:
- 环绕已存在的存储 :
- 如果您有 IDocumentService 对象, 请用 FluidDebugger. 从服务创建( C) 呼叫(注意是主动呼叫)
- 或者,如果你有IDocumentService Factory, 把它包起来 FluidDebugger. 从服务 Factory () 创建 调用
- 在 Dev 工具控制台中, do
(原始内容存档于2017-10-21). localStorage. 流体调试器= 1
Fluid app 有 UI 切换它 - 设置 QQ 调试器 = 打开
- 一旦刷新页面,请查找被屏蔽的(通过浏览器)弹出窗口通知. 为您的应用程序启用弹出程序 .
怎样禁用它
- 在 Dev 工具控制台中,运行
删除本地Storage。 流体调试器
如何运作
选择从何处开始
一旦调试器启动, 您在第一个屏幕上有以下选择 :

-
关闭窗口 。 调试器将被禁用, 正常的文档流将会继续 - 文档会被读取/ 写入 。 在所有其他选项文档中,只读,即不承诺本地更改存储.
-
没有快照开始, 即只使用操作来播放文件的历史
-
使用特定快照开始( 使用下拉) 。 您将看到一些快照( 带有密码名称) , 以及每个快照的起始序列号, 并进行排序( 最迟在顶部) 。 请注意,降水是同步进行的 -- -- 页面上有进展文本指出这一点.
-
使用存储在磁盘上的快照( U)"snapshot.json" (英语))),生产 重放工具。如果想要验证快照的生成和加载(从一组操作)不会引入错误,此选项是有用的。 这是有用的,因为没有其他办法在过去的特定时间点产生快照。 注释:
- 目前您无法在此模式的快照上播放操作( 未来将添加) .
- 您可以从不同的文件中装入快照( 上面给出) 。 只要是同一应用程序,是否使用同一文件或存储端点来启动一个应用程序并不重要.
正在操作
如果您选择了存储快照(而不是从文件中的快照)或者没有快照, 您会被显示一个屏幕, 允许您播放操作( 在快照上) 。 您可以同时选择要播放的操作数并点击"去"按钮 :

请注意, 回放是同步的,所以尽管Debugger UI可能已经承认了播放的操作(并且你可以选择下批),但应用程序可能仍在处理上批的处理过程中.
内部,或用于其他工作流程的有用部件
调试器由三个大多相互独立的部件组成——UI,Controller和存储层. 人们可以非常容易地用替代的表达方式代替UI和/或控制器,从而构建出不同的工具(如文件回收工具).
调试器控制器 是一个控制重放逻辑的界面,但不是UI. 提供实施这一接口的情况如下: 调试重播控制器
调试器UI 是一个控制 UI 的接口,没有控制逻辑. 调试器UI 执行这一接口.
Fluid 调试器 。 创建 Fluid 调试器 () 是绑定逻辑 & UI 执行的示例
独立实施 文件集服务 接口作为调试器的一部分提供 :
- 文件抓取读取器 - 基于文件的存储。 它从文件读取内容( snapshot.json) 并期望 IFile 图像 格式,使用此类文件的内容满足文档请求.
- 抓图集 - 基于特定快照的存储(真实存储)。 需要在施工时提供快照根 ISnapshotTree .
- 操作 - 基于op的存储(即拒绝所有关于快照/树的要求).
客户最低要求
Fluid框架客户端库支持此文档中的平台. 这些要求有意具有限制性. 在一个主要的版本系列中,我们可以放松这些要求,但我们不能使其更严格. 对于长期支持(LTS)版本,我们可能需要支持这些平台几年.
其他配置可以奏效,但Fluid框架不支持. 如果一个不支持的配置停止工作, 我们不会将此归类为错误 . 要请求支持未列出的配置, 请存档 . 产品组会评估你的要求. 在此问题上,请具体说明配置的现状:
- 配置有效但需要官方支持.
- 配置不起作用,需要更改.
支持的运行时间
- Fluid框架支持节点.js版本22和24同时收到 上游支助。 。 。 .
- 流体框架将停止支持第22版 当上游支持于2027-04-30结束时。 。 。 .
- 流体框架不支持节点.js与
--no-experimental-fetch旗帜.
- Fluid框架支持支持ES2022标准库的现代浏览器.
支持的工具
- 类型脚本 6.0数字 :
- 流体框架支持全部
strict选项. - 设定建设目标(
lib, (中文(简体) ),target改为:ES2022或后会. - 启用
strictNullChecks。 。 。 . - 流体框架不支持 在 TypeScript 6.0 中贬值的配置选项。 。 。 .
- 流体框架不完全支持
exactOptionalPropertyTypes。 。 。 . 如果您启用此选项, 请不要使用in, (中文(简体) ),Reflect.has, (中文(简体) ),Object.hasOwn,或Object.prototype.hasOwnProperty改为Fluid框架类型的窄成员. 这些方法可以错误地排除undefined从可能的值.
- 流体框架支持全部
- 网络软件包 页:1
- 我们不需要一个特定的捆绑者. 其他处理ES模块的捆绑机可以工作,但我们只积极测试网页包.
模块分辨率
在类型脚本中 compilerOptions,使用时 Node16, (中文(简体) ), Node20, (中文(简体) ), NodeNext,或 Bundler 模块分辨率.
这些设置遵循 节点.js v12+无害环境管理 分辨率和加载算法。 。 。 .
不使用 Node10 模块分辨率.
模块格式
- ES模块: 使用ES模块来消耗Fluid框架客户端软件包,包括在Node.js中.
- 常见JS : Fluid Framework在3.0版本或后期不正式支持CommonJS.
贡献准则
你们可以 贡献 通过这些方式实现流体框架:
详细指示改为: repo 文档。 。 。 .
本项目遵循 Microsoft 开源行为守则。 。 。 . 更多信息,改为: 《行为守则》经常被问到的问题。 。 。 . 问题或评论,联系 打开码@ microsoft.com。 。 。 .
这个项目可能包含微软项目的商标或标志,产品,或服务. 这些商标或标志的使用必须遵循微软 商标和品牌准则。 。 。 . 在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助.
帮助
读取 流体框架文件 用于了解流体框架概念和API.
要求提供文件未载列的资料, 创建问题。 。 。 .
商标
这个项目可能包含微软项目的商标或标志,产品,或服务.
这些商标或标志的使用必须遵循微软的 商标和品牌准则。 。 。 .
在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助.