npmnode.js85% confidence\u2191 7

"vitest --ui" causing "Error: spawn xdg-open ENOENT"

Full error message
I'm trying to check out Vitest's fancy UI server in my node docker container. But can't get it up and running. When running the npm script vitest --ui I get a node error spawn xdg-open ENOENT.

Here the full error message:

$ npm run test-ui

> [email protected] test-ui
> vitest --ui

 DEV  v0.23.4 /home/node/apps/main/frontend
      UI started at http://localhost:51204/__vitest__/

node:events:491
      throw er; // Unhandled 'error' event
      ^

Error: spawn xdg-open ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:283:19)
    at onErrorNT (node:internal/child_process:476:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
Emitted 'error' event on ChildProcess instance at:
    at ChildProcess._handle.onexit (node:internal/child_process:289:12)
    at onErrorNT (node:internal/child_process:476:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'spawn xdg-open',
  path: 'xdg-open',
  spawnargs: [ 'https://localhost:51204/__vitest__/' ]
}

Node.js v18.10.0

Google is no help at all - nothing related to Vitest even close. Also I'm obviously not a Node.js expert.

Even though the Node.js error message appears pretty cryptic to me, I still was lucky to use Ubuntu as my primary OS (beside macOS) which made me draw my attention to xdg-open in the error message - I occasionally use the command to open all kind of programs/apps on Ubuntu. Don't know why, but you need to have xdg-open installed on your system, to be able to run vitest --ui, even though it's neither mentioned in Vitest nor in Vite Github repos with a single word. Anyway for debian based containers it's: apt install xdg-utils --fix-missing Allthough this made the ENOENT error go away and the UI server starts up without errors, I still don't get to see the UI app due to some runtime-dom errors... I give it up. But maybe someone else finds the xdg-open info helpful. UPDATE: It's working! I just had to append /__vitest__/ to my proxied local url as clearly described in the docs: "Then you can visit the Vitest UI at http://localhost:51204/__vitest__/"

API access

Get this solution programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/error/4dae4577a24530f4e3f8cc6c5524d1e8b8173dcce8fb5e6334f2d47ab76dd3fc
hash \u00b7 4dae4577a24530f4e3f8cc6c5524d1e8b8173dcce8fb5e6334f2d47ab76dd3fc
"vitest --ui" causing "Error: spawn xdg-open… — DepScope fix | DepScope