feat: update prebuild script to ensure generated SEO data is used and refactor SEO data import

This commit is contained in:
Your Name
2026-03-23 19:26:53 +02:00
parent 0fe1e42e54
commit 5207204778
2 changed files with 8 additions and 14 deletions

View File

@@ -5,7 +5,7 @@
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"prebuild": "node scripts/generate-seo-assets.mjs", "prebuild": "node scripts/merge-keywords.mjs && node scripts/generate-seo-assets.mjs",
"build": "tsc --noEmit && vite build", "build": "tsc --noEmit && vite build",
"preview": "vite preview", "preview": "vite preview",
"lint": "eslint .", "lint": "eslint .",

View File

@@ -1,17 +1,11 @@
// Prefer a generated SEO data file at build time if present (seoData.generated.json). // Prefer a generated SEO data file at build time if present (seoData.generated.json).
// This file is optional and created by frontend/scripts/merge-keywords.mjs. // This file is optional and created by frontend/scripts/merge-keywords.mjs.
let seoSeedConfig: any; // At build time we prefer the generated SEO data file. The build's `prebuild`
try { // script ensures `seoData.generated.json` exists. Import it statically so the
// try to load generated first // bundler does not need top-level await.
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
seoSeedConfig = (await import('@/seo/seoData.generated.json')).default; import seoSeedConfig from '@/seo/seoData.generated.json';
} catch (err) {
// fallback to original
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
seoSeedConfig = (await import('@/seo/seoData.json')).default;
}
import type { import type {
LocalizedText, LocalizedText,
LocalizedTextList, LocalizedTextList,
@@ -46,7 +40,7 @@ interface SeoSeedConfig {
collectionPageSeeds: CollectionPageSeed[]; collectionPageSeeds: CollectionPageSeed[];
} }
const seedConfig = seoSeedConfig as SeoSeedConfig; const seedConfig = (seoSeedConfig as unknown) as SeoSeedConfig;
function buildToolFaqs(seed: ToolPageSeed): SeoFaqTemplate[] { function buildToolFaqs(seed: ToolPageSeed): SeoFaqTemplate[] {
return [ return [