fix: fingerprint the deployed entry asset
This commit is contained in:
@@ -39,11 +39,11 @@ Hedef commit ve yerel frontend asset hash’i verilerek salt okunur canlı kabul
|
||||
|
||||
```sh
|
||||
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
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"qa:browser": "node tests/browser-acceptance.mjs",
|
||||
"qa:asset-hash": "node scripts/asset-fingerprint.mjs",
|
||||
"qa:live": "node tests/live-runtime-probe.mjs",
|
||||
"preview": "vite preview",
|
||||
"server": "node server/index.js",
|
||||
|
||||
@@ -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`);
|
||||
Reference in New Issue
Block a user