vitest-5-0-0-5-b
Claude Code's read-only tools, web search on, ludion sync on
Question
Is @vitest/runner still published as its own package?
Answer key
- A correct answer says
- Vitest 5 bundles its own runner and no longer depends on @vitest/runner. The package is deprecated (there is no 5.x release; the 4.x line gets security fixes only) and does not share state with Vitest 5, so use the runner APIs exported from `vitest` (for example `TestRunner`).
- The stale answer
- Import runner APIs from the separate @vitest/runner package.
Answer
No, not for Vitest 5. On npm, `@vitest/runner` only goes up to `4.1.11` (`latest`). Its 5.x line stopped at `5.0.0-beta.4`, and there's no stable 5.x release. Your installed `vitest@5.0.3` doesn't depend on `@vitest/runner` at all, and it isn't in `node_modules/@vitest`. The runner code now appears to be bundled into `vitest` itself; `vitest/dist` has `runtime.js` and `task-utils.js` entry points. I'm inferring that from the package contents, not from a changelog. If any code imports `@vitest/runner` directly, check whether those imports should now come from a `vitest/*` subpath.Grade
correct
The judge's reason: It says Vitest 5 bundles the runner, no longer depends on @vitest/runner, has no stable 5.x release, and points imports to `vitest`; it omits the explicit deprecation and security-fix detail but says nothing stale.
Session log
Tool call: Bash
{ "command": "npm view @vitest/runner version time.modified dist-tags --json 2>&1 | head -30; ls node_modules/@vitest 2>/dev/null", "description": "Check npm registry for @vitest/runner" }Tool output
{ "version": "4.1.11", "time.modified": "2026-08-18T14:23:20.279Z", "dist-tags": { "beta": "5.0.0-beta.4", "V3": "3.2.7", "latest": "4.1.11" } } browser browser-playwright mocker pretty-format spy ui utilsTool call: Bash
{ "command": "npm view vitest@5.0.3 dependencies --json 2>&1 | head -30; ls node_modules/vitest/dist 2>/dev/null | head -30", "description": "Check vitest 5 dependencies" }Tool output
{ "chai": "^6.2.2", "obug": "^2.1.4", "std-env": "^4.2.0", "tinyexec": "^1.3.0", "picomatch": "^4.0.7", "tinybench": "^6.1.4", "tinyglobby": "^0.2.17", "@types/chai": "^5.2.2", "expect-type": "^1.4.0", "magic-string": "^1.2.3", "@vitest/mocker": "5.0.3", "es-module-lexer": "^2.3.2", "why-is-node-running": "3.2.1" } browser.d.ts browser.js chunks cli.js config.cjs config.d.ts config.js index.d.ts index.js module-evaluator.d.ts module-evaluator.js node.d.ts node.js nodejs-worker-loader.js path.js runtime.d.ts runtime.js spy.js task-utils.js traces.js worker.d.ts worker.js workersAgent
No, not for Vitest 5. On npm, `@vitest/runner` only goes up to `4.1.11` (`latest`). Its 5.x line stopped at `5.0.0-beta.4`, and there's no stable 5.x release. Your installed `vitest@5.0.3` doesn't depend on `@vitest/runner` at all, and it isn't in `node_modules/@vitest`. The runner code now appears to be bundled into `vitest` itself; `vitest/dist` has `runtime.js` and `task-utils.js` entry points. I'm inferring that from the package contents, not from a changelog. If any code imports `@vitest/runner` directly, check whether those imports should now come from a `vitest/*` subpath.