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
Describe the bug
Every
vpCLI layer consumes one--argument separator, so passthrough args that Vite leaves inprocess.argvforvite.config.tsto read never arrive. Actually the flags after the stripped--even get misparsed as Vite positionals.With plain Vite,
vite build -- --app webkeeps--app webout of option parsing and visible inprocess.argv(often sude to parameterize a single hoisted config in a monorepo).But in
vpthis is broken:vp build -- --app web--stripped, Vite parses--app web,webbecomes the build root (Cannot resolve entry module web/index.html), the project config never loadsvp build -- -- --app web--stripped toovp build -- -- -- --app webARGV=["build","--","--app","web"]So global
vpneeds three--where Vite needs one, and a project-localvpneeds two.Expected:
vp dev -- --app/vp build -- --appbehave exactly likevite dev -- --app— one--, trailing args preserved in the spawned Vite process'sprocess.argv.Reproduction
See steps below (three files, no dependencies).
Steps to reproduce
System Info
Used Package Manager
pnpm
Logs
Validations