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
|
```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
|
||||||
|
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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