chore(deps): batch update all non-major dependencies - #3502
Conversation
Walkthrough本次变更更新运行时和开发依赖,新增 workspace 覆盖规则,并统一多个类型声明和表达式的格式。源代码的类型语义和运行逻辑保持不变。 Changes依赖与格式更新
Estimated code review effort: 2 (简单) | ~15 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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
⛔ Files ignored due to path filters (2)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlsrc/packages/skeleton/__test__/__snapshots__/skeleton.spec.tsx.snapis excluded by!**/*.snap
📒 Files selected for processing (1)
package.json
| "@typescript-eslint/eslint-plugin": "^7.18.0", | ||
| "@typescript-eslint/parser": "^7.18.0", |
There was a problem hiding this comment.
📐 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
doneRepository: 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 以下的版本。
| "@vitest/coverage-v8": "^3.2.7", | ||
| "@vitest/ui": "^2.1.9", |
There was a problem hiding this comment.
🩺 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.yamlRepository: 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:
- 1: https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/ui/node/index.ts
- 2: Vitest should install correct ui/browser package versions via CLI vitest-dev/vitest#5855
- 3: https://registry.npmjs.org/%40vitest%2Fui
- 4: kubestellar/console@40acdf4
- 5: https://registry.npmjs.org/@vitest/ui
- 6: https://npm-browser.pages.dev/package/@vitest/ui
🌐 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:
- 1: https://github.com/vitest-dev/vitest/releases
- 2: https://github.com/vitest-dev/vitest/releases/tag/v3.2.7
- 3: https://registry.npmjs.org/%40vitest%2Fui
- 4: vitest-dev/vitest@v3.2.6...v3.2.7
- 5: https://www.npmjs.com/package/@vitest/ui
🌐 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:
- 1: https://registry.npmjs.org/%40vitest%2Fui
- 2: https://npm-browser.pages.dev/package/@vitest/ui
- 3: vsm1996/renge-ui@cfa717c
- 4: https://github.com/vitest-dev/vitest/releases/tag/v3.2.7
将 @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.
| "@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.
a2b4a7e to
0738cd3
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
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
⛔ Files ignored due to path filters (4)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlsrc/packages/menu/__test__/__snapshots__/menu.spec.tsx.snapis excluded by!**/*.snapsrc/packages/noticebar/__test__/__snapshots__/noticebar.spec.tsx.snapis excluded by!**/*.snapsrc/packages/numberkeyboard/_test_/__snapshots__/index.spec.tsx.snapis excluded by!**/*.snap
📒 Files selected for processing (8)
pnpm-workspace.yamlsrc/packages/avatarcropper/__tests__/avatarcropper.spec.tsxsrc/packages/formitem/formitem.tsxsrc/packages/lottie/types.tssrc/packages/resultpage/types.tssrc/packages/steps/steps.taro.tsxsrc/packages/steps/steps.tsxsrc/packages/toast/toast.taro.tsx
| 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 |
There was a problem hiding this comment.
🩺 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
fiRepository: 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' . || trueRepository: 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 || trueRepository: 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:
协议。
0738cd3 to
df4fbc7
Compare
Replaces the following stale renovate PRs:
All tests passing (600/600), build verified.
🤔 这个变动的性质是?
🔗 相关 Issue
💡 需求背景和解决方案
☑️ 请求合并前的自查清单
Summary by CodeRabbit