From 4ff9aa2dd83b15cd47d31ba92c21a4c8dde9fec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levi=20Ara=C3=BAjo?= Date: Sun, 11 Oct 2026 18:32:26 -0300 Subject: [PATCH] feat(web): make version dynamic from package.json - Add generate-version.ts script to read version from root package.json - Create version.ts at build time via predev/prebuild hooks - Configure @/ alias in tsconfig and vite.config - Update Hero and Header components to use dynamic VERSION import - Version now syncs automatically with package.json on build --- web/package.json | 3 ++- web/scripts/generate-version.ts | 6 ++++++ web/src/components/Header/index.tsx | 3 ++- web/src/components/Hero/index.tsx | 3 ++- web/src/version.ts | 1 + web/tsconfig.json | 4 +++- web/vite.config.ts | 5 +++++ 7 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 web/scripts/generate-version.ts create mode 100644 web/src/version.ts diff --git a/web/package.json b/web/package.json index c344a90..46c6b51 100644 --- a/web/package.json +++ b/web/package.json @@ -6,7 +6,8 @@ "description": "Documentation site for Funcio, with runnable examples, deployed to GitHub Pages.", "scripts": { "dev": "vite", - "prebuild": "npm --prefix .. run build", + "predev": "tsx scripts/generate-version.ts", + "prebuild": "tsx scripts/generate-version.ts && npm --prefix .. run build", "pretypecheck": "npm --prefix .. run build", "build": "npm run verify && tsc --noEmit -p tsconfig.json && npm run lint && vite build", "postbuild": "tsx scripts/generate-sitemap.ts && tsx scripts/update-version.ts", diff --git a/web/scripts/generate-version.ts b/web/scripts/generate-version.ts new file mode 100644 index 0000000..c43f1ac --- /dev/null +++ b/web/scripts/generate-version.ts @@ -0,0 +1,6 @@ +import { readFileSync, writeFileSync } from 'fs' +import { resolve } from 'path' + +const pkg = JSON.parse(readFileSync(resolve('../package.json'), 'utf-8')) +writeFileSync(resolve('src/version.ts'), `export const VERSION = "${pkg.version}"`) +console.log(`Generated version.ts with ${pkg.version}`) \ No newline at end of file diff --git a/web/src/components/Header/index.tsx b/web/src/components/Header/index.tsx index e2d820d..76a71e8 100644 --- a/web/src/components/Header/index.tsx +++ b/web/src/components/Header/index.tsx @@ -1,5 +1,6 @@ import { useEffect, useState } from 'react' import { useTheme } from '../../hooks/useTheme' +import { VERSION } from '@/version' import { Button } from '../Button' import { Logo } from '../Logo' @@ -29,7 +30,7 @@ export const Header = () => { Funcio - 0.0.32 + {VERSION}