Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Fechada
#3,141 0 comentários 1 reação 1 responsável Ver no GitHub

Mantenedores costumam responder em até 1 dia

@fengmk2 já está trabalhando nisso.

Desde 20/10/2026.

Avaliação

Esta issue ainda não foi avaliada.

Descrição

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.
Linguagem predominante
Rust
Estrelas
6.3k
Forks
283
Merge médio
1d 12h
PRs com merge (30d)
235

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de voidzero-dev/vite-plus

Todas as issues de voidzero-dev/vite-plus

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.