Skip to content

vp dev& vp build break argv passthrough by stripping the -- separator #2250

Description

@TheAlexLichter

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Target date

    None yet

    Start date

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions