# 依赖补丁 修复一些依赖包中存在的问题 ## floating-vue **问题:** 水合过程中激活不匹配 **进度:** 暂不知晓该包何时修复该问题。 **影响:** 在控制台中输出 `hydration mismatch` 错误警告,但不影响站点正常访问和交互。 相关 issue: - - 当在项目中启用了 `twoslash` 功能,并额外安装了 `@vuepress/shiki-twoslash` 包,在项目进行 `vuepress build` 构建部署包并部署后。 访问部署后的站点,在有使用 `twoslash` 功能的相关页面,会出现下面的错误信息: ``` hydration mismatch ``` 这表示在 水合过程中激活不匹配,即打包后的 SSR 代码与浏览器端代码不匹配。 该问题是由于 `floating-vue` 中的 `popper-id` 的值不匹配导致的。 为了解决这个问题,需要在 `floating-vue` 中修改 `popper-id` 的值。 通过以下步骤进行修复: > [!CAUTION] > 此修复方案仅适用于 PNPM 1. 运行下面的命令 ```bash pnpm patch floating-vue@5.2.2 ``` 该命令会下载 `floating-vue` 的补丁包到 `node_modules/.pnpm_patches/floating-vue@5.2.2` 并在控制台中输出类似的信息: ```bash pnpm patch-commit ``` 留意这部分信息,在步骤 5 中,需要复制此行命令 `` 表示补丁包的路径,在这里是 `node_modules/.pnpm_patches/floating-vue@5.2.2` 2. 进入 `node_modules/.pnpm_patches/floating-vue@5.2.2` 文件夹。 3. 打开 `dist/floating-vue.mjs` 文件,并跳转到第 `948` 行 (`id: e.popperId,`) 4. 在该行下方插入新的一行,内容为: ```diff id: e.popperId, + 'data-allow-mismatch': '', ``` 5. 复制 步骤 1 中的控制台输出的 `pnpm patch-commit ` 命令,并粘贴到控制台中执行。 6. 重新构建部署站点