From d39143e21d6b00495380bb32ad877957620b5412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemek=20Wi=C4=99ch?= Date: Wed, 29 Apr 2026 00:11:06 +0200 Subject: [PATCH] Simplify package.json build and start scripts Move reading readme and versions out of package.json --- package.json | 8 ++------ src/changelog.tsx | 2 +- src/imports.d.ts | 5 +++++ vite.config.mts | 14 ++++++++++++++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index cfcbb9b..50b74ce 100644 --- a/package.json +++ b/package.json @@ -83,12 +83,8 @@ "vite-tsconfig-paths": "^5.1.4" }, "scripts": { - "start": "run-script-os", - "start:default": "GENERATE_SOURCEMAP=false VITE_CHANGELOG=`cat CHANGELOG.md` VITE_GIT_SHA=`git rev-parse --short HEAD` VITE_GIT_TIME=`git log -1 --format=%ci` vite", - "start:windows": "powershell -Command \"Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser; $env:GENERATE_SOURCEMAP='false'; $env:VITE_CHANGELOG = Get-Content -Path \"CHANGELOG.md\" -Raw; $env:VITE_GIT_SHA=$(git rev-parse --short HEAD); $env:VITE_GIT_TIME=$(git log -1 --format='%ci'); vite\"", - "build": "run-script-os", - "build:default": "tsc && GENERATE_SOURCEMAP=false VITE_CHANGELOG=`cat CHANGELOG.md` VITE_GIT_SHA=`git rev-parse --short HEAD` VITE_GIT_TIME=`git log -1 --format=%ci` vite build", - "build:windows": "powershell -Command \"Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser; tsc; if ($?) { $env:GENERATE_SOURCEMAP='false'; $env:VITE_CHANGELOG = Get-Content -Path \"CHANGELOG.md\" -Raw; $env:VITE_GIT_SHA=$(git rev-parse --short HEAD); $env:VITE_GIT_TIME=$(git log -1 --format='%ci'); vite build }", + "start": "vite", + "build": "tsc && vite build", "test": "jest", "prettier": "prettier --write \"src/**/*.{ts,tsx,json}\"", "lint": "eslint src --ext .ts,.tsx", diff --git a/src/changelog.tsx b/src/changelog.tsx index b1ed2b5..b4365c1 100644 --- a/src/changelog.tsx +++ b/src/changelog.tsx @@ -5,6 +5,7 @@ import remarkParse from 'remark-parse'; import remarkRehype from 'remark-rehype'; import {Button, Header, Modal} from 'semantic-ui-react'; import {unified} from 'unified'; +import changelog from '../CHANGELOG.md?raw'; const LAST_SEEN_VERSION_KEY = 'last_seen_version'; @@ -19,7 +20,6 @@ export async function getChangelog(maxVersions: number, seenVersion?: string) { ? Date.parse(seenVersion.slice(0, 10)) : 0; - const changelog = import.meta.env.VITE_CHANGELOG as string; const changes = changelog .split('##') diff --git a/src/imports.d.ts b/src/imports.d.ts index 7c0da47..1556af2 100644 --- a/src/imports.d.ts +++ b/src/imports.d.ts @@ -1,2 +1,7 @@ declare module '*.jpg'; declare module '*.png'; +declare module '*?raw' { + const content: string; + export default content; +} + diff --git a/vite.config.mts b/vite.config.mts index df9f2cd..934f563 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -2,10 +2,24 @@ import {defineConfig} from 'vite'; import {resolve} from 'path'; import react from '@vitejs/plugin-react'; import viteTsconfigPaths from 'vite-tsconfig-paths'; +import {execSync} from 'child_process'; + +let gitSha = ''; +let gitTime = ''; +try { + gitSha = execSync('git rev-parse --short HEAD').toString().trim(); + gitTime = execSync('git log -1 --format=%ci').toString().trim(); +} catch (e) { + console.error('Failed to get git info', e); +} export default defineConfig({ // depending on your application, base can also be "/" base: '', + define: { + 'import.meta.env.VITE_GIT_SHA': JSON.stringify(gitSha), + 'import.meta.env.VITE_GIT_TIME': JSON.stringify(gitTime), + }, plugins: [ react(), viteTsconfigPaths(),