quest'n'click 4.5.0 · r1

Construite pour quest'n'click 4.5.0, révision r1. Si elle est publiée, et laquelle est la courante, est dit par publication.json.

doctor : vérifier sa machine

English · Type : référence + dépannage · Public : auteur, contributeur · Contexte : dépôt du moteur, projet créé · Statut : prête · S'applique depuis : 4.1.8

doctor dit, une ligne par prérequis, si ce dont quest'n'click a besoin est présent sur la machine, et comment installer ce qui manque. Il n'installe jamais rien. Il se lance dans le dépôt du moteur avec npm run doctor, et dans un projet créé avec npx quest-n-click doctor (qui demande aujourd'hui un contournement : plus bas).

Le lancer

# dans le dépôt du moteur
npm run doctor
npm run doctor -- --release
# dans un projet créé (lisez d'abord « Dans un projet créé »)
npx quest-n-click doctor

Les deux lancent le même fichier, tools/doctor.ts, dont les vérifications sont dans tools/doctor-checks.ts.

Ce qu'il vérifie

LigneSondeRequisCorrection affichée
Node.jsla version majeure du Node qui tourne vaut 22 ou plusouiInstall Node.js 22 or newer.
Pythonpython3 -c … affiche sa versionoptionnel (requis avec --release)Install Python 3 to prepare the assets (npm run assets).
Python image modulespython3 importe Pillow, NumPy et SciPyoptionnel (requis avec --release)Run: python3 -m pip install -r requirements.txt
ffmpegffmpeg -version réussitoptionnel (requis avec --release)Install ffmpeg to build audio.
Playwright Chromiuml'exécutable Chromium de Playwright existeouiRun: npx playwright install chromium
Playwright Firefoxson exécutable existeoptionnelRun: npx playwright install firefox
Playwright WebKitson exécutable existeoptionnelRun: npx playwright install webkit
Reality BridgeEd25519 dans le WebCrypto de Node, puis le WebAssembly de Biscuit se chargeEd25519 seulementInstall Node.js 22 or newer.

La ligne Reality Bridge n'échoue que si le WebCrypto de Node n'a pas Ed25519. Quand Biscuit ne se charge pas, elle passe et dit Biscuit not installed (only a Bridge needs it) : un jeu qui ne fait pas tourner de Bridge n'en a jamais besoin.

La correction Python cite requirements.txt dans le dossier courant : dans un projet créé, le fichier est node_modules/quest-n-click/requirements.txt.

Sortie et code de retour

Chaque ligne commence par ✔ (présent), ✖ (absent et requis) ou ○ (absent et optionnel, suivi de (optional)) ; une ligne absente est suivie de sa correction. La dernière ligne est l'une de :

doctor sort avec 1 quand un prérequis requis manque, 0 sinon : une machine sans Python ni WebKit développe et joue quand même (depuis la 4.1.6). Un exemple, sur le Mac du mainteneur le 23 octobre 2026, moteur 4.4.0 (chemins raccourcis) :

✔  Node.js: 22.14.0
✔  Python: 3.12.7
✔  Python image modules: Pillow 12.3.0, NumPy 2.4.6, SciPy 1.18.1
✔  ffmpeg: ffmpeg version 9.0.2 Copyright (c) 2000-2026 the FFmpeg developers
✔  Playwright Chromium: /Users/…/ms-playwright/chromium-1248/…/Google Chrome for Testing
✔  Playwright Firefox: /Users/…/ms-playwright/firefox-1555/…/firefox
✔  Playwright WebKit: /Users/…/ms-playwright/webkit-2370/pw_run.sh
✔  Reality Bridge: Ed25519 in WebCrypto; Biscuit not installed (only a Bridge needs it)

Development, asset and browser-test prerequisites are ready.

Cet exemple montre une limite de la sonde : Pillow 12.3.0 passe, alors que requirements.txt épingle la 13.0.0. doctor vérifie que les modules s'importent, pas leur version.

Garantie · doctor-optional-not-fatal · référencée · exécutée sur aff6caab7514 · portée vérifiée par son auteur (IA), pas relue Un Python, un module Python, un ffmpeg ou un WebKit absent est signalé avec sa correction et ne fait pas échouer doctor ; un Node 22 ou un Chromium absent, si. Avec --release, Python, ses modules et ffmpeg deviennent requis, et WebKit reste optionnel. Le test lance les vérifications avec des sondes qu'il injecte, pas sur une vraie machine.

--release

fonction apparue en 4.1.8

npm run doctor -- --release exige ce que lance npm run release-check : Python, ses modules et ffmpeg. Firefox et WebKit restent optionnels (release-check n'ouvre aucun navigateur ; les e2e tournent en CI à chaque modification) ; Chromium reste requis. Le rapport se termine par (release mode: every prerequisite of npm run release-check is required). release-check et le release-check:ci du candidat commencent par lui.

Ce qu'il ne vérifie pas

Dans un projet créé

npx quest-n-click doctor lance tools/doctor.ts depuis le paquet du moteur, et ce fichier importe playwright pour trouver les exécutables des navigateurs. Le paquet du moteur ne dépend pas de Playwright (scripts/pack.mjs le laisse de côté avec les autres outils de test) : dans un projet neuf, la commande s'arrête donc avant d'afficher quoi que ce soit :

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'playwright' imported from …/my-game/node_modules/quest-n-click/tools/doctor.ts

Constaté le 23 octobre 2026 dans un projet créé depuis l'archive de la v4.4.0 ; le code de main est le même. Rien d'autre dans un projet créé ne se sert de Playwright : dev, assets, verify, build et release n'ouvrent aucun navigateur par lui. Deux façons de contourner, dans le projet créé :

# dans le projet créé : donner à doctor le Playwright qu'il importe, en dépendance de développement
npm install --save-dev playwright@^1.64.1
npx playwright install chromium     # seulement si doctor dit ensuite que Chromium manque
npx quest-n-click doctor

La plage ^1.64.1 est celle du dépôt du moteur (son package.json en v4.4.0 et sur main le 23 octobre 2026). Ou vérifiez à la main ce dont un projet créé a besoin : node --version (22.12 ou plus récent), python3 -c "import PIL, numpy, scipy", et ffmpeg -version si votre jeu a des sons ou des vidéos. La version pas à pas est dans Dépannage de l'installation.

Limite · doctor-needs-playwright Dans un projet créé, doctor ne marche qu'une fois playwright installé dans ce projet, et il exige alors Chromium, dont un projet créé ne se sert jamais.

Depuis

npm run doctor existe depuis la 3.0.0. Les prérequis optionnels absents ont cessé de le faire échouer en 4.1.6, quand quest-n-click doctor (alors web-scumm doctor) a rejoint les commandes du paquet ; la ligne Reality Bridge est arrivée avec la 4.1.1, --release avec la 4.1.8.


Modifier la source de cette page · Signaler une erreur