Skip to content

"vp create vite:<unknown>" crashes with ENOENT instead of showing a helpful error message #1128

@naokihaba

Description

@naokihaba

Describe the bug

When running vp create with an unknown vite: prefixed template name (e.g. vite:test, vite:other), the CLI crashes with an unhandled ENOENT error instead of showing a clear error message.

❯ vp create vite:other
VITE+ - The Unified Toolchain for the Web

◇ Package name:
  distinction-auto

◇ Which package manager would you like to use?
  pnpm

◇ Which agents are you using?
  ChatGPT (Codex)

◇ Which editor are you using?
  VSCode

◇ Set up pre-commit hooks to run formatting, linting, and type checking with auto-fixes?
  Yes

◓  Generating project (0s)
ENOENT: no such file or directory, open '/Users/naokihaba/Desktop/distinction-auto/package.json'
Error: ENOENT: no such file or directory, open '/Users/naokihaba/Desktop/distinction-auto/package.json'
    at Object.readFileSync (node:fs:440:20)
    at readJsonFile (file:///Users/naokihaba/.vite-plus/0.1.14/node_modules/.pnpm/vite-plus@0.1.14_vite@8.0.2/node_modules/vite-plus/dist/global/package-Y1UTfJnZ.js:881:21)
    at editJsonFile (file:///Users/naokihaba/.vite-plus/0.1.14/node_modules/.pnpm/vite-plus@0.1.14_vite@8.0.2/node_modules/vite-plus/dist/global/package-Y1UTfJnZ.js:895:27)
    at setPackageName (file:///Users/naokihaba/.vite-plus/0.1.14/node_modules/.pnpm/vite-plus@0.1.14_vite@8.0.2/node_modules/vite-plus/dist/global/create.js:3243:2)
    at executeBuiltinTemplate (file:///Users/naokihaba/.vite-plus/0.1.14/node_modules/.pnpm/vite-plus@0.1.14_vite@8.0.2/node_modules/vite-plus/dist/global/create.js:3521:2)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async main (file:///Users/naokihaba/.vite-plus/0.1.14/node_modules/.pnpm/vite-plus@0.1.14_vite@8.0.2/node_modules/vite-plus/dist/global/create.js:4174:12) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/naokihaba/Desktop/distinction-auto/package.json'
}
Failed to generate code: ENOENT: no such file or directory, open '/Users/naokihaba/Desktop/distinction-auto/package.json'

I intend to submit a PR for this fix.

Reproduction

N/A

Steps to reproduce

  1. Run vp create vite:other (any vite: prefixed name that isn't vite:monorepo, vite:application, vite:library, or vite:generator)
  2. Fill in the prompts (package name, package manager, etc.)
  3. Observe the ENOENT crash

Expected:

A clear error message like Unknown builtin template "vite:other". Run vp create --list to see available templates.

Actual:

ENOENT: no such file or directory, open '/path/to/distinction-auto/package.json'
    at setPackageName (.../dist/global/create.js)
    at executeBuiltinTemplate (.../dist/global/create.js)
Failed to generate code: ENOENT: no such file or directory, ...

System Info

$ vp env current
VITE+ - The Unified Toolchain for the Web

Environment:
  Version       22.18.0
  Source        .node-version
  Source Path   /Users/naokihaba/ghq/github.com/vite-plus/.node-version
  Project Root  /Users/naokihaba/ghq/github.com/vite-plus

Tool Paths:
  node  /Users/naokihaba/.vite-plus/js_runtime/node/22.18.0/bin/node
  npm   /Users/naokihaba/.vite-plus/js_runtime/node/22.18.0/bin/npm
  npx   /Users/naokihaba/.vite-plus/js_runtime/node/22.18.0/bin/npx

$ vp --version
VITE+ - The Unified Toolchain for the Web

vp v0.1.14

Local vite-plus:
  vite-plus  v0.0.0

Tools:
  vite             v8.0.2
  rolldown         v1.0.0-rc.11
  vitest           v4.1.1
  oxfmt            v0.42.0
  oxlint           v1.57.0
  oxlint-tsgolint  v0.17.3
  tsdown           v0.21.4

Environment:
  Package manager  pnpm v10.28.0
  Node.js          v22.18.0 (.node-version)

Used Package Manager

pnpm

Logs

Validations

Metadata

Metadata

Assignees

Type

Priority

None yet

Effort

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions