koel/koel · info
Command "pnpm dev" has been removed. Use "composer dev" inst
Error message
Command "pnpm dev" has been removed. Use "composer dev" instead.
What it means
Koel's package.json no longer ships a working `dev` script. The `dev` entry is a stub — `node -e "console.warn(...)"` — that prints this message and exits 0 without starting anything. Front-end development was consolidated behind `composer dev` (a script array in composer.json) which orchestrates the Laravel dev server together with the Vite+ (`vp`) pipeline.
Source
Thrown at package.json:95
"vite": "npm:@voidzero-dev/vite-plus-core@^0.1.24",
"vite-plus": "^0.1.24",
"vitepress": "^1.6.3",
"vitepress-plugin-llms": "^1.11.0",
"vitest": "npm:@voidzero-dev/vite-plus-test@^0.1.24",
"vue-tsc": "^3.2.5"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"scripts": {
"check": "vp check resources/assets",
"check:fix": "vp check --fix resources/assets",
"typecheck": "vue-tsc --noEmit -p resources/assets/tsconfig.typecheck.json",
"test": "vp test",
"test:unit": "vp test",
"build:sw": "vp build --config vite.config.sw.js",
"build": "vp build && pnpm run build:sw",
"dev": "node -e \"console.warn('Command \\\"pnpm dev\\\" has been removed. Use \\\"composer dev\\\" instead.')\"",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs",
"prepare": "vp config"
},
"type": "module",
"pnpm": {
"overrides": {
"form-data@<2.5.4": ">=2.5.4",
"@rolldown/pluginutils": "1.0.0-rc.9",
"vite": "npm:@voidzero-dev/vite-plus-core@^0.1.24",
"vitest": "npm:@voidzero-dev/vite-plus-test@^0.1.24"
}
},
"packageManager": "pnpm@10.32.1"
}
View on GitHub (pinned to 41cab99fee)
Solutions
- Run `composer dev` instead — it starts the full dev stack (Laravel server + Vite)
- Grep the repo for stale invocations and update them: `grep -rn 'pnpm dev' . --exclude-dir=node_modules`
- For front-end-only work, run `vp dev` (the Vite+ CLI) directly
- Confirm the script exists in your checkout: `composer run --list | grep dev`
Example fix
# before (Dockerfile / CI) RUN pnpm dev # after RUN composer dev # or: vp dev for frontend-only
Defensive patterns
Strategy: validation
Validate before calling
# Fail CI when stale invocations of the removed script exist if grep -rq 'pnpm dev\|npm run dev' --exclude-dir=node_modules --exclude-dir=vendor .; then echo 'Stale "pnpm dev" references found — migrate to "composer dev"' >&2; exit 1 fi
Prevention
- Use `composer dev` as the single entry point for local development
- Update Dockerfiles, CI jobs, and IDE launch configs in the same commit that upgrades Koel
- For frontend-only work use the Vite+ CLI: `vp dev`
- Treat a `pnpm dev` that only prints a message and exits 0 as a silent failure in automation
When it happens
Trigger: Running `pnpm dev`, `pnpm run dev`, or `npm run dev` in the repository root always prints the warning and starts no server. CI jobs, Dockerfiles, and IDE launch tasks that still invoke `pnpm dev` also hit it and silently 'succeed' (exit 0) while doing nothing.
Common situations: Muscle memory or outdated tutorials referencing `pnpm dev`; CI pipelines and Dockerfiles not updated after the migration to composer-run dev and the Vite+ `vp` CLI; onboarding from an older Koel checkout.
AI-assisted analysis of koel/koel@41cab99fee (2026-08-23).
Data as JSON: /api/errors/82c7c2736c49ad15.
Report an issue: GitHub.