Passer au contenu principal

Construire et publier

Le package actuel est @plato/pc-printer.

Scripts

ScénarioCommandeBut
cleannode scripts/clean.jsSupprime les artefacts de build, la sortie, les journaux, le zip et dump.rdb.
buildesbuild src/index.ts src/scripts/*.ts --bundle --platform=node --target=node12 --outdir=distRegroupe le code d’exécution.
startnode dist/index.jsDémarre le pilote intégré.
pkgpkg dist/index.js -t node12-win-x64 -o output/plato-printer.exe --config package.jsonCrée un exécutable Windows.
bundleversion bump, build, préparation Redis, pkg, zipProduit plato-printer.zip.
stressnode scripts/stress-test.jsExécute un test de charge d’imprimante fictive.

Construire localement

pnpm --filter @plato/pc-printer clean
pnpm --filter @plato/pc-printer build
pnpm --filter @plato/pc-printer start

Créer un zip de version

pnpm --filter @plato/pc-printer bundle
Le script du bundle :
  1. Incréments src/version.ts.
  2. Construit le pilote dans dist.
  3. Prépare le binaire Windows Redis configuré.
  4. Construit output/plato-printer.exe.
  5. Copie config.json.
  6. Copie les ressources Caddy.
  7. Copie les certificats.
  8. Copie redis-binaries/<redis.version>.
  9. Crée plato-printer.zip.

Contenu de la version

plato-printer.exe
config.json
assets/
  caddy/
  certs/
redis-binaries/

Gestion des versions

src/version.ts contient :
export const BUILD_VERSION = 66;
La version de build est renvoyée par GET /health et imprimée dans la bannière de démarrage. Ne modifiez pas ce fichier manuellement ; scripts/increment-version.js le met à jour pendant pnpm bundle.

Préparation du caddie

Caddy est épinglé sur 2.6.4. Pour télécharger Caddy dans assets/caddy avant de le regrouper :
pnpm --filter @plato/pc-printer exec node scripts/download-caddy.js
Si assets/caddy/caddy.exe existe, le programme d’installation du runtime peut le copier au lieu de télécharger Caddy sur l’ordinateur du client.

Redis Préparation binaire

scripts/prepare-redis-binaries.js lit config.json et télécharge la version configurée de Windows Redis si elle est manquante. Le chemin attendu est :
redis-binaries/<version>/Redis-<version>-Windows-x64-msys2/redis-server.exe

Test de résistance

Le test de résistance démarre des imprimantes TCP fictives et envoie de nombreuses requêtes /print.
pnpm --filter @plato/pc-printer stress
Options utiles :
node scripts/stress-test.js \
  --host http://127.0.0.1:8080 \
  --printers 5 \
  --jobs 100 \
  --base-port 9200 \
  --poll-ms 500 \
  --timeout-ms 60000
Le test réussit lorsque toutes les files d’attente cibles sont épuisées.

Liste de contrôle de sortie

  1. Confirmez que config.json est correct pour la version.
  2. Confirmez que les actifs Caddy existent si HTTPS doit fonctionner hors ligne.
  3. Exécutez pnpm --filter @plato/pc-printer clean.
  4. Exécutez pnpm --filter @plato/pc-printer bundle.
  5. Exécutez l’exécutable à partir de output/.
  6. Vérifiez GET /health.
  7. Exécutez un véritable test d’impression.
  8. Vérifiez que plato-printer.zip contient les fichiers attendus.