Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

`vp migrate` copies string `extends` paths from `.oxlintrc.json` into `lint`, which `vp lint` rejects

Đang mở
#3,089 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@fengmk2 đang làm issue này rồi.

Từ ngày 17/10/2026.

  • #3097 của @fengmk2 — đang mở

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
rust, typescript
Lĩnh vực
developer-experience

Hướng nghiên cứu

Start from the reproduction repo (cr101/vp-migrate-extends-repro) and run the migrate step to see how .oxlintrc.json is folded into the lint block of vite.config.ts. The string extends entries are copied unchanged, so the migrator needs to resolve each path relative to the original file, or keep the file and skip the lint block. Done when vp lint and tsc -p . both pass on the migrated repro, or the migrator warns and leaves the config for manual migration.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Describe the bug

.oxlintrc.json can extend other config files by path, as the Oxlint docs describe:

{ "extends": ["./shared/oxlint-config.json"] }

vp migrate deletes .oxlintrc.json and copies the path string unchanged into the lint block of vite.config.ts:

lint: {
  extends: ["./shared/oxlint-config.json"],
  // ...
}

Vite+ then rejects that config:

  • vp lint fails with "extends[0] must be a config object (strings/paths are not supported)."
  • tsc fails with TS2559: Type 'string' has no properties in common with type 'OxlintConfig'.

The migration reports success, but linting is broken afterwards, and the original .oxlintrc.json has been deleted.

Expected: either the migrator resolves each extends path and inlines or imports the config as an object, or it keeps .oxlintrc.json, leaves the lint block out and warns that the config needs to be migrated by hand.

Reproduction

https://github.com/cr101/vp-migrate-extends-repro

Steps to reproduce
npm install
npm run lint            # oxlint applies no-debugger from the extended config
npx -y [email protected] vp migrate --no-interactive --no-agent --no-editor --no-hooks
npx vp lint             # fails
npx tsc -p .            # fails
System Info
$ vp env current
Node.js:
  Version    26.12.0
  Source     system PATH
  Bin Path   C:\Program Files\nodejs\node.exe
  Installed  true
  Mode       system_first

Package Manager:
  Name       npm
  Version    11.20.0
  Source     system PATH
  Bin Paths
    npm      C:\Program Files\nodejs\npm.cmd
    npx      C:\Program Files\nodejs\npx.cmd
  Installed  true
  Mode       system_first

$ vp --version   # global CLI, in the repro before migration
vp v1.2.0

Local vite-plus:
  vite-plus  Not found

Tools:
  vite             Not found
  rolldown         Not found
  vitest           Not found
  oxfmt            Not found
  oxlint           Not found
  oxlint-tsgolint  Not found
  tsdown           Not found

Environment:
  Package manager  npm v11.8.0
  Node.js          v24.22.0

$ npx vp --version   # local CLI, in the repro after migration
vp v1.2.0

Local vite-plus:
  vite-plus  v1.2.0

Tools:
  vite             v8.3.4
  rolldown         v1.2.13
  vitest           v5.0.4
  oxfmt            v0.73.0
  oxlint           v1.88.0
  oxlint-tsgolint  v7.0.2004
  tsdown           v0.23.1

Windows x64. The migration and checks ran on system Node 26.12.0, with npm 11.8.0 selected by `packageManager`.
Used Package Manager

npm

Logs
$ npx vp migrate --no-interactive --no-agent --no-editor --no-hooks
◇ Migrated . to Vite+ 1.2.0
• Node 26.12.0  npm 11.8.0
✓ Dependencies installed in 16s
• 1 config update applied, 1 file had imports rewritten

$ npx vp lint
Failed to parse oxlint configuration file.

  x Failed to load config: ...\vp-extends-repro\vite.config.ts
  |
  | Error: `extends[0]` must be a config object (strings/paths are not supported).

$ npx tsc -p .
vite.config.ts(6,15): error TS2559: Type 'string' has no properties in common with type 'OxlintConfig'.
Validations
  • Read the Contributing Guidelines.
  • Check that there isn't already an issue for the same bug. Related but different: #2430 and #2483 (dynamic oxlint.config.ts/oxfmt.config.ts), and #2037 (migrate follow-ups; no extends item).
  • Confirm this is a Vite+ issue and not an upstream issue. Oxlint supports path extends in .oxlintrc.json; the invalid config is produced by vp migrate.
  • The provided reproduction is a minimal reproducible example.
Ngôn ngữ chính
Rust
Star
6k
Fork
274
Merge trung bình
1 ngày 12 giờ
Pull request đã merge (30 ngày)
205

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của voidzero-dev/vite-plus

Tất cả issue của voidzero-dev/vite-plus

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.