Skip to content

npx --package=vite-plus vp create fails with exit 127 when npm is the chosen package manager #2970

Closed
schalkneethling/create-project-calavera
#672

Description

@schalkneethling

Describe the bug

When vp create runs under npx --package=vite-plus and npm is the selected package manager, the template runner fails with sh: create-vite@latest: command not found (exit 127).

npx --package=vite-plus sets npm_config_package=vite-plus in the environment of vp. vp create copies all of process.env into the template runner environment (packages/cli/src/create/discovery.ts, prependToPathToEnvs(..., { ...process.env })). The nested npx create-vite@latest … reads the inherited npm_config_package, so npm installs vite-plus and looks for a bin named create-vite@latest in it, which does not exist.

The same command succeeds when:

  • the global vp runs it, with no outer npx;
  • pnpm dlx --package vite-plus vp create runs it;
  • pnpm, Yarn, or Bun is the selected package manager;
  • npm_config_package is removed from the environment before vp starts.

Reproduction

No repository is needed. Run from an empty directory.

Steps to reproduce

npx --yes --package vite-plus vp create vite:application --directory app \
  --package-manager npm --no-agent --no-editor --no-git --no-hooks --no-interactive --verbose

Output:

●  Running: npx create-vite@latest app --no-interactive --no-immediate --no-rolldown
npm notice run 'create-vite@latest' app --no-interactive --no-immediate --no-rolldown
sh: create-vite@latest: command not found

Exit code 127. app is not created.

Minimal npm-only reproduction of the mechanism, without Vite+:

npx --yes --package cowsay node -e 'require("child_process").execSync("npx --yes create-vite@latest --help", { stdio: "inherit" })'
# sh: create-vite@latest: command not found (exit 127)

The same command with npm_config_package deleted from the child environment succeeds.

Suggested fix

Remove the npm exec-only keys inherited from an outer npm exec or npx (npm_config_package, and npm_config_call for npx -c) from envs before vp create spawns the package-manager runner. I am happy to open a pull request with a test in discovery.spec.ts if you want this approach.

System Info

macOS (Darwin 27.0.0)
Node.js 24.21.0
npm 11.19.0 (outer npx); vp installed npm 12.2.0 for the project
vite-plus 1.1.0 (main at c58f28c read for the source reference)

Used Package Manager

npm

Logs

See the output above. The exit code is 127. The outer npm debug log shows only that the parent command failed.

Activity

  1. added theissue type on Oct 9, 2026
  2. fengmk2 commented on Oct 14, 2026

    @fengmk2
    Member

    use create-vite-plus package instead #3028

  3. added a commit that references this issue on Oct 14, 2026
    f3987b5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

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