fix: fingerprint the deployed entry asset

This commit is contained in:
2026-09-15 15:24:19 +03:00
parent 4d191a07b1
commit 0bbfed321a
3 changed files with 13 additions and 2 deletions
+2 -2
View File
@@ -39,11 +39,11 @@ Hedef commit ve yerel frontend asset hash’i verilerek salt okunur canlı kabul
```sh ```sh
IHALEIST_EXPECTED_RELEASE="$(git rev-parse HEAD)" \ IHALEIST_EXPECTED_RELEASE="$(git rev-parse HEAD)" \
IHALEIST_EXPECTED_ASSET_SHA256="$(sha256sum dist/assets/index-*.js | awk '{print $1}')" \ IHALEIST_EXPECTED_ASSET_SHA256="$(npm run -s qa:asset-hash)" \
npm run qa:live -- https://ihaleist.com npm run qa:live -- https://ihaleist.com
``` ```
macOS üzerinde `sha256sum` yerine `shasum -a 256` kullanılabilir. Probe `/api/version` release değerini, ana sayfadaki gerçek asset’i ve container içinden bildirilen asset hash’ini birlikte karşılaştırır. `qa:asset-hash`, `dist/index.html` içindeki giriş scriptini okuyarak yalnız gerçekten yüklenen ana JavaScript asset’inin hash’ini üretir. Probe `/api/version` release değerini, ana sayfadaki gerçek asset’i ve container içinden bildirilen asset hash’ini birlikte karşılaştırır.
## Kademeli yayın ## Kademeli yayın
+1
View File
@@ -7,6 +7,7 @@
"dev": "vite", "dev": "vite",
"build": "vite build", "build": "vite build",
"qa:browser": "node tests/browser-acceptance.mjs", "qa:browser": "node tests/browser-acceptance.mjs",
"qa:asset-hash": "node scripts/asset-fingerprint.mjs",
"qa:live": "node tests/live-runtime-probe.mjs", "qa:live": "node tests/live-runtime-probe.mjs",
"preview": "vite preview", "preview": "vite preview",
"server": "node server/index.js", "server": "node server/index.js",
+10
View File
@@ -0,0 +1,10 @@
import path from 'node:path';
import { frontendAssetInfo } from '../server/release-info.mjs';
const asset = frontendAssetInfo([path.resolve(process.cwd(), 'dist')]);
if (!asset) {
console.error('dist/index.html içinde yüklenen frontend JavaScript asset’i bulunamadı. Önce npm run build çalıştırın.');
process.exit(1);
}
process.stdout.write(`${asset.sha256}\n`);