Skip to content

chore(deps): batch update all non-major dependencies - #3502

Open
xiaoyatong wants to merge 1 commit into
feat_v3.xfrom
chore/batch-deps-update
Open

chore(deps): batch update all non-major dependencies#3502
xiaoyatong wants to merge 1 commit into
feat_v3.xfrom
chore/batch-deps-update

Conversation

@xiaoyatong

@xiaoyatong xiaoyatong commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Replaces the following stale renovate PRs:

All tests passing (600/600), build verified.

🤔 这个变动的性质是?

  • 新特性提交
  • 日常 bug 修复
  • 站点、文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • TypeScript 定义更新
  • 包体积优化
  • 性能优化
  • 功能增强
  • 国际化改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他改动(是关于什么的改动?)

🔗 相关 Issue

💡 需求背景和解决方案

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • fork仓库代码是否为最新避免文件冲突
  • Files changed 没有 package.json lock 等无关文件

Summary by CodeRabbit

  • 功能与兼容性
    • 更新运行时及开发工具依赖,提升构建、测试与开发环境的兼容性。
    • 新增动画支持及 React 测试类型相关依赖。
    • 升级 Babel、React、TypeScript、Vite、Vitest、Rollup、Sass、ESLint 等生态组件。
    • 统一关键组件、类型定义及样式工具的版本,增强多包环境下的稳定性。

@github-actions github-actions Bot added the 3.x Target branch 3.x label Aug 9, 2026
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

本次变更更新运行时和开发依赖,新增 workspace 覆盖规则,并统一多个类型声明和表达式的格式。源代码的类型语义和运行逻辑保持不变。

Changes

依赖与格式更新

Layer / File(s) Summary
依赖配置更新
package.json, pnpm-workspace.yaml
更新 Lottie、React、TypeScript、Vite、Vitest、Rollup、测试工具、Lint 工具及相关生态包。新增 workspace 依赖覆盖规则。
源代码格式统一
src/packages/avatarcropper/__tests__/avatarcropper.spec.tsx, src/packages/formitem/formitem.tsx, src/packages/lottie/types.ts, src/packages/resultpage/types.ts, src/packages/steps/*, src/packages/toast/toast.taro.tsx
调整类型声明、类型断言和 class 表达式的换行格式。未改变类型成员、生成的 class 名称或运行逻辑。

Estimated code review effort: 2 (简单) | ~15 minutes

Possibly related PRs

Suggested reviewers: alex-huxiyang, oasis-cloud

Poem

我是小兔,整理依赖清单,
Lottie 在新版本中起舞。
Vite 与 Vitest 轻快奔跑,
类型声明排成整齐队伍,
代码格式清爽如春笋。

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning 描述包含更新范围、测试结果和构建验证,但变更性质未勾选,相关 Issue、背景方案和自查清单均未填写。 勾选适用的变更性质,并补充相关 Issue、需求背景与解决方案;完成自查清单后再提交合并。
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed 标题准确概括了本次批量更新非 major 依赖的主要变更,与 PR 目标一致。
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/batch-deps-update

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the action:review This PR needs more reviews (less than 2 approvals) label Aug 9, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@package.json`:
- Around line 162-163: 将 package.json 中的 `@typescript-eslint/parser` 和
`@typescript-eslint/eslint-plugin` 从 7.18.0 升级到支持 TypeScript 5.9.3
的兼容版本,并同步更新锁文件;确保两个包使用匹配的版本,避免继续使用仅支持 TypeScript 5.7 以下的版本。
- Around line 165-166: Update the `@vitest/ui` dependency in package.json from
2.1.9 to 3.2.7 so it matches vitest and `@vitest/coverage-v8`, then refresh the
pnpm lockfile to reflect the unified version.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7ac8795a-8581-466f-a8fd-138b5a915499

📥 Commits

Reviewing files that changed from the base of the PR and between fd88e62 and a56017e.

⛔ Files ignored due to path filters (2)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • src/packages/skeleton/__test__/__snapshots__/skeleton.spec.tsx.snap is excluded by !**/*.snap
📒 Files selected for processing (1)
  • package.json

Comment thread package.json
Comment on lines +162 to +163
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

What TypeScript versions are officially supported by @typescript-eslint/parser7.18.0 and@typescript-eslint/eslint-plugin 7.18.0?

💡 Result:

@typescript-eslint/parser 7.18.0 and @typescript-eslint/eslint-plugin 7.18.0 are officially supported for TypeScript versions >=4.7.4 and <5.7.0 (i.e., any TS 4.7+ version up to, but not including, 5.7.0). [1] This range is what typescript-eslint reports as the “Supported TypeScript versions” when you run it with an unsupported TypeScript version. [1]

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf 'package.json relevant dependency lines:\n'
python3 - <<'PY'
import json
with open('package.json', 'r', encoding='utf-8') as f:
    pkg = json.load(f)
for section in ['dependencies','devDependencies','peerDependencies','optionalDependencies']:
    deps = pkg.get(section)
    if not deps:
        continue
    for name in ['typescript','`@typescript-eslint/parser`','`@typescript-eslint/eslint-plugin`']:
        if name in deps:
            print(f'{section}.{name}={deps[name]}')
PY

printf '\nLockfiles mentioning typescript-eslint packages:\n'
for f in package-lock.json pnpm-lock.yaml yarn.lock bun.lockb; do
  if [ -f "$f" ]; then
    printf '\n== $f ==\n'
    grep -n '`@typescript-eslint/parser`\|`@typescript-eslint/eslint-plugin`' "$f" | head -80 || true
  fi
done

Repository: jdf2e/nutui-react

Length of output: 8600


typescript-eslint 升级到支持 TypeScript 5.9.3 的版本。

@typescript-eslint/parser@typescript-eslint/eslint-plugin 7.18.0 仅支持 TypeScript <5.7.0;当前 TypeScript 已升级至 5.9.3,需同时升级 parser 和 plugin,或保持使用受支持的 TypeScript 版本。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@package.json` around lines 162 - 163, 将 package.json 中的
`@typescript-eslint/parser` 和 `@typescript-eslint/eslint-plugin` 从 7.18.0 升级到支持
TypeScript 5.9.3 的兼容版本,并同步更新锁文件;确保两个包使用匹配的版本,避免继续使用仅支持 TypeScript 5.7 以下的版本。

Comment thread package.json
Comment on lines +165 to +166
"@vitest/coverage-v8": "^3.2.7",
"@vitest/ui": "^2.1.9",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

jq -r '
  .devDependencies
  | {
      vitest,
      "`@vitest/ui`",
      "`@vitest/coverage-v8`"
    }
  | to_entries[]
  | "\(.key)=\(.value)"
' package.json

rg -n -C 4 '`@vitest/ui`|`@vitest/coverage-v8`|vitest@' pnpm-lock.yaml

Repository: jdf2e/nutui-react

Length of output: 14635


🌐 Web query:

vitest 3 UI documentation version compatibility @vitest/ui vitest peerDependencies

💡 Result:

For @vitest/ui, you must use the exact same version as your vitest installation [1][2]. Vitest explicitly requires that the core vitest package and its internal companion packages (like @vitest/ui) match versions to ensure compatibility [1][2]. Running mixed versions is not supported and will trigger a warning in the console, as well as potential bugs [1]. Technical details: - Peer Dependencies: The @vitest/ui package defines a strict peer dependency on the corresponding version of vitest [3][4][5]. For example, if you are using vitest 4.1.6, your @vitest/ui must also be 4.1.6 [4]. - Verification: Vitest's internal code checks the version of the loaded vitest context against the version of @vitest/ui at runtime [1]. If a mismatch is detected, it will log a warning stating that running mixed versions is not supported [1]. - Best Practice: To avoid version conflicts, ensure your package.json dependencies are kept in sync. If you upgrade vitest, you should upgrade @vitest/ui to the same version [1][2]. As of August 2026, Vitest is at version 4.x/5.x (with 4.1.x series being widely used) [6][5], and the requirement to match versions remains a fundamental part of the library's architecture [1][2].

Citations:


🌐 Web query:

Vitest 3.x @vitest/ui 3.2.7 npm registry peerDependencies

💡 Result:

As of August 9, 2026, Vitest 3.2.7 is a released version in the Vitest 3.x series [1][2]. Regarding the peer dependencies for @vitest/ui version 3.2.7, it requires the main vitest package to be installed [3]. Specifically, @vitest/ui typically declares a peer dependency on the corresponding version of vitest (i.e., ^3.2.7) to ensure compatibility between the test runner and the UI interface [3][4]. You can verify the exact peer dependency requirements for your project by checking the package.json file of the installed version in your node_modules/@vitest/ui/package.json or by viewing the package metadata via the npm registry [3][5]. In the Vitest monorepo, internal packages like @vitest/ui are strictly versioned alongside the main vitest package [4].

Citations:


🌐 Web query:

npm package @vitest/ui@3.2.7 peerDependencies vitest

💡 Result:

The npm package @vitest/ui version 3.2.7 has a peer dependency on vitest [1][2]. While specific range constraints can vary by exact package metadata, official vitest packages typically require the peer dependency to match the package's own version exactly to ensure compatibility [3]. In practice, this means that if you are using @vitest/ui version 3.2.7, it expects vitest version 3.2.7 to be installed in your project [3][4]. Using mismatched versions—such as having @vitest/ui at 3.2.7 while vitest is at an earlier or later version—often triggers unmet peer dependency warnings during installation [3]. Because @vitest/ui is an interactive runner for vitest, it is tightly coupled to the core vitest package's internal API and releases [1][3][4].

Citations:


@vitest/ui 升级到与 vitest 相同的版本。

当前项目使用 vitest@vitest/coverage-v8 的 3.2.7 版本,但 @vitest/ui 仍停留在 2.1.9。Vitest 要求 UI 包与 vitest 保持同版本;当前 pnpm 锁文件已出现 3.2.7 与 2.1.9 混合加载的条目,会导致 UI 模式报告不兼容问题。

建议修改
-    "`@vitest/ui`": "^2.1.9",
+    "`@vitest/ui`": "^3.2.7",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"@vitest/coverage-v8": "^3.2.7",
"@vitest/ui": "^2.1.9",
"`@vitest/coverage-v8`": "^3.2.7",
"`@vitest/ui`": "^3.2.7",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@package.json` around lines 165 - 166, Update the `@vitest/ui` dependency in
package.json from 2.1.9 to 3.2.7 so it matches vitest and `@vitest/coverage-v8`,
then refresh the pnpm lockfile to reflect the unified version.

@xiaoyatong
xiaoyatong force-pushed the chore/batch-deps-update branch 2 times, most recently from a2b4a7e to 0738cd3 Compare August 9, 2026 09:31
@codecov

codecov Bot commented Aug 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.93%. Comparing base (fdbdf66) to head (df4fbc7).
⚠️ Report is 9 commits behind head on feat_v3.x.

Additional details and impacted files
@@              Coverage Diff              @@
##           feat_v3.x    #3502      +/-   ##
=============================================
- Coverage      88.41%   87.93%   -0.49%     
=============================================
  Files            294      295       +1     
  Lines          19496    19690     +194     
  Branches        3040     3063      +23     
=============================================
+ Hits           17238    17315      +77     
- Misses          2252     2369     +117     
  Partials           6        6              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pnpm-workspace.yaml`:
- Line 13: 移除 pnpm-workspace.yaml 根级 overrides 中 `@nutui/icons-react-taro` 指向
../nutui-icons/packages/icons-react-taro 的本地链接,改用 package.json 已声明的
3.0.2-cpp.3.beta.10 发布版本;仅在将该目录纳入 workspace 后才可改用 workspace: 协议。
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6dff07f0-6bd6-4a33-899d-67d83858eab0

📥 Commits

Reviewing files that changed from the base of the PR and between a56017e and 0738cd3.

⛔ Files ignored due to path filters (4)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • src/packages/menu/__test__/__snapshots__/menu.spec.tsx.snap is excluded by !**/*.snap
  • src/packages/noticebar/__test__/__snapshots__/noticebar.spec.tsx.snap is excluded by !**/*.snap
  • src/packages/numberkeyboard/_test_/__snapshots__/index.spec.tsx.snap is excluded by !**/*.snap
📒 Files selected for processing (8)
  • pnpm-workspace.yaml
  • src/packages/avatarcropper/__tests__/avatarcropper.spec.tsx
  • src/packages/formitem/formitem.tsx
  • src/packages/lottie/types.ts
  • src/packages/resultpage/types.ts
  • src/packages/steps/steps.taro.tsx
  • src/packages/steps/steps.tsx
  • src/packages/toast/toast.taro.tsx

Comment thread pnpm-workspace.yaml Outdated
sass: 1.77.6
'@tarojs/api': 4.0.12
'@tarojs/components': 4.0.12
'@nutui/icons-react-taro': link:../nutui-icons/packages/icons-react-taro

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

link_path="../nutui-icons/packages/icons-react-taro"

if [ ! -f "${link_path}/package.json" ]; then
  echo "失败:当前 checkout 缺少 ${link_path}/package.json" >&2
  exit 1
fi

if [ -d .github ]; then
  rg -n --glob '*.yml' --glob '*.yaml' \
    'nutui-icons|actions/checkout|pnpm install' .github || true
fi

Repository: jdf2e/nutui-react

Length of output: 227


🏁 Script executed:

#!/usr/bin/env bash
 set -euo pipefail

echo "pwd=$(pwd)"
echo "top-level files:"
git ls-files | sed -n '1,120p'

echo
echo "pnpm-workspace.yaml:"
if [ -f pnpm-workspace.yaml ]; then
  cat -n pnpm-workspace.yaml
fi

echo
echo "workspace packages matching ../nutui-icons:"
git ls-files | grep -E '(^|/)packages/|(^|/)apps/|(^|/)libs/' | sed -n '1,120p'

echo
echo "search for nutui-icons in tracked files:"
rg -n --glob '!node_modules/**' 'nutui-icons|overrides|`@nutui/icons-react-taro`|workspace:\.|link:\.\.\/nutui-icons' . || true

Repository: jdf2e/nutui-react

Length of output: 30376


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "package.json dependency excerpt:"
python3 - <<'PY'
import json
from pathlib import Path
p = Path("package.json")
data = json.loads(p.read_text())
for section in ("dependencies","devDependencies","peerDependencies","optionalDependencies"):
    deps = data.get(section)
    if deps and "`@nutui/icons-react-taro`" in deps:
        print(f"{section}: {deps['`@nutui/icons-react-taro`']}")
PY

echo
echo "pnpm lock overrides section excerpt:"
python3 - <<'PY'
from pathlib import Path
text = Path("pnpm-lock.yaml").read_text().splitlines()
for i,line in enumerate(text[:50],1):
    if "`@nutui/icons-react-taro`" in line or i <= 60:
        print(f"{i:4}: {line}")
PY

echo
echo "lock import/package excerpt for `@nutui/icons-react-taro`:"
python3 - <<'PY'
from pathlib import Path
for i,line in enumerate(Path("pnpm-lock.yaml").read_text().splitlines(),1):
    if "'`@nutui/icons-react-taro`@3.0.2-cpp.3.beta.10':" in line:
        start=max(1,i-10); end=min(i+40, i+40)
        for n,l in enumerate(Path("pnpm-lock.yaml").read_text().splitlines()[start-1:end], start):
            print(f"{n:5}: {l}")
PY

echo
echo ".github workflows install/check hints:"
rg -n --glob '*.yml' --glob '*.yaml' 'actions/checkout|pnpm install|pnpm ci|npm ci|prepare|setup|nutui-icons|submodule|clone|git submodule' .github || true

Repository: jdf2e/nutui-react

Length of output: 8381


移除根级 overrides 中的外部本地链接。

pnpm-workspace.yaml:13@nutui/icons-react-taro 指向 ../nutui-icons/packages/icons-react-taro,但该目录未包含在 workspace packages 中;clean checkout 和 CI 的 pnpm install 缺少该路径。该配置与 package.json 中已有的 3.0.2-cpp.3.beta.10 版本不一致,请使用发布版本,或把图标包纳入同一 workspace 并使用 workspace:

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pnpm-workspace.yaml` at line 13, 移除 pnpm-workspace.yaml 根级 overrides 中
`@nutui/icons-react-taro` 指向 ../nutui-icons/packages/icons-react-taro 的本地链接,改用
package.json 已声明的 3.0.2-cpp.3.beta.10 发布版本;仅在将该目录纳入 workspace 后才可改用 workspace:
协议。

Replaces stale renovate PRs: #3011 #3088 #3115 #3395 #3427 #3449 #3450 #3454 #3455 #3460

- pnpm update (non-major) with pnpm@10.34.5
- eslint --fix for prettier formatting changes
- snapshot updates

All tests passing (600/600), build verified.

Co-Authored-By: Claude <noreply@anthropic.com>
@xiaoyatong
xiaoyatong force-pushed the chore/batch-deps-update branch from 0738cd3 to df4fbc7 Compare August 9, 2026 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.x Target branch 3.x action:review This PR needs more reviews (less than 2 approvals) size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant