`vp dev`& `vp build` break argv passthrough by stripping the `--` separator
@wan9chi is already working on this.
Since Jul 26, 2026.
Assessment
This issue has not been assessed yet.
Description
Describe the bug
Every vp CLI layer consumes one -- argument separator, so passthrough args that Vite leaves in process.argv for vite.config.ts to read never arrive. Actually the flags after the stripped -- even get misparsed as Vite positionals.
With plain Vite, vite build -- --app web keeps --app web out of option parsing and visible in process.argv (often sude to parameterize a single hoisted config in a monorepo).
But in vp this is broken:
| Command | Result |
|---|---|
vp build -- --app web |
broken: -- stripped, Vite parses --app web, web becomes the build root (Cannot resolve entry module web/index.html), the project config never loads |
vp build -- -- --app web |
still broken: second -- stripped too |
vp build -- -- -- --app web |
works: config sees ARGV=["build","--","--app","web"] |
So global vp needs three -- where Vite needs one, and a project-local vp needs two.
Expected: vp dev -- --app / vp build -- --app behave exactly like vite dev -- --app — one --, trailing args preserved in the spawned Vite process's process.argv.
Reproduction
See steps below (three files, no dependencies).
Steps to reproduce
mkdir repro && cd repro
cat > package.json <<'PKG'
{ "name": "repro", "private": true, "type": "module" }
PKG
cat > vite.config.ts <<'CFG'
console.log('ARGV=' + JSON.stringify(process.argv.slice(2)));
export default {};
CFG
cat > index.html <<'HTML'
<!doctype html><html><body>hi</body></html>
HTML
vp build -- --app web # fails: Cannot resolve entry module web/index.html, no ARGV log
vp build -- -- -- --app web # works: ARGV=["build","--","--app","web"]
System Info
vp v0.2.2 (global), macOS (Darwin 25.5.0)
Also reproducible on main
Used Package Manager
pnpm
Logs
Validations
- Read the Contributing Guidelines.
- Check that there isn't already an issue for the same bug.
- Confirm this is a Vite+ issue and not an upstream issue (Vite, Vitest, tsdown, Rolldown, or Oxc).
- The provided reproduction is a minimal reproducible example.
- Dominant language
- Rust
- Stars
- 5.8k
- Forks
- 263
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 147
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from voidzero-dev/vite-plus
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
voidzero-dev/vite-plus#2804 · 1 reaction ·
-
pending triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
voidzero-dev/vite-plus#2801 · 1 reaction ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
voidzero-dev/vite-plus#2097 · 10 comments · 2 reactions ·
-
documentation
voidzero-dev/vite-plus#2800 · 1 assignee ·
-
pending triage
Difficulty 3/5 1-2 days Newbie friendliness 65/100
voidzero-dev/vite-plus#2796 · 1 comment ·
All issues in voidzero-dev/vite-plus
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
state:needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
zed-industries/zed#64680 · 2 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
RustPython/RustPython#8802 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
TheLarkInn/aipm#2390 ·