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

vpx: watch reports for `vpx --watch`, and `vpx watch` on oxc-node's watcher

Đã đóng
#3,141 0 bình luận 1 reaction 1 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 20/10/2026.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

Follow-up to #2936. vpx --watch is Node.js watch mode with the script loader. It restarts when an imported file changes, but not in two common cases, which tsx watch misses as well:

  • A tsconfig edit, such as a new paths mapping.
  • A file an import is waiting for, created after the first run (import "./later.js", then later.ts is added).

It also has none of tsx watch's options: include and exclude globs, clearing the screen, rerunning on Enter, a kill timeout, or polling for Docker, WSL, and network drives.

oxc-node added both pieces in oxc-project/oxc-node#861, which #2936 syncs (ce22828):

  1. Dependency reports. With enable_watch_report on, the binding records the tsconfig files it reads and the paths a failed resolve looked for. @oxc-node/core's loader sends them as { "watch:import": [url] } over IPC, the message Node.js's own watcher already reads, so node --watch restarts on them.
  2. oxnode watch. A tsx-style watcher, about 2,500 lines of TypeScript on Node.js built-ins.

Plan

  1. Reports for vpx --watch. Forward enable_watch_report and take_watch_dependencies in packages/cli/binding/src/oxc_node.rs. Port the relay into vpx's loader: the preload reports on the in-thread path, and the off-thread hooks send through a channel to the main thread. It is on only when WATCH_REPORT_DEPENDENCIES is set. vpx --watch then restarts on tsconfig edits and created files, with no new process.
  2. Signal ack. Port the child's side of OXNODE_SIGNAL_ACK into the preload, so the watcher does not deliver Ctrl+C twice when it runs in a pipe or the background.
  3. vpx watch. Run oxc-node's watcher, bundled from the vendored source, once oxc-project/oxc-node#871 gives it an entry that takes vpx's loader and name.
    • Both CLIs route vpx watch <script>: the global vpx execs Node.js with the bundled watcher, and the local bin calls it in process.
    • Add docs and snapshots, and a vp migrate rule that rewrites tsx watch to vpx watch.

Notes

  • vpx watch currently runs the binary of the npm package watch. A subcommand changes that, as tsx and oxnode did.
  • The process count matches vpx --watch, since Node.js watch mode also runs a watcher process above the script.
  • Step 1 does not depend on oxc-project/oxc-node#871 and can land first.
Ngôn ngữ chính
Rust
Star
6.3k
Fork
283
Merge trung bình
1 ngày 14 giờ
Pull request đã merge (30 ngày)
231

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.