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

  1. Run `composer dev` instead — it starts the full dev stack (Laravel server + Vite)
  2. Grep the repo for stale invocations and update them: `grep -rn 'pnpm dev' . --exclude-dir=node_modules`
  3. For front-end-only work, run `vp dev` (the Vite+ CLI) directly
  4. 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

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.