mirror of
https://github.com/Xevion/grain.git
synced 2025-12-05 23:15:08 -06:00
Major framework and tooling changes: - Migrate from React 19 to Preact 10 with preact-iso for routing - Replace @mantine/hooks with custom hooks (useBooleanToggle, useViewportSize) - Switch from @heroicons/react to lucide-preact for icons - Replace chance.js with random-js for RNG Testing infrastructure: - Add Vitest with @testing-library/preact and happy-dom - Set up test configuration and initial App tests - Add Vitest UI for interactive test running Build optimizations: - Add cssnano for CSS minification - Configure aggressive bundle optimizations in Vite - Update to Tailwind CSS 4.1.17 Project structure: - Consolidate entry point from main.tsx to index.tsx - Reorganize CSS location (styles/index.css → index.css) - Add ESLint with preact config - Update TypeScript configuration for Preact
43 lines
1.2 KiB
JSON
43 lines
1.2 KiB
JSON
{
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"preinstall": "npx only-allow pnpm",
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"preview": "vite preview",
|
|
"test": "vitest",
|
|
"test:ui": "vitest --ui",
|
|
"test:run": "vitest run",
|
|
"test:coverage": "vitest run --coverage"
|
|
},
|
|
"dependencies": {
|
|
"@tailwindcss/vite": "^4.1.17",
|
|
"cssnano": "^7.1.0",
|
|
"lucide-preact": "^0.468.0",
|
|
"preact": "^10.27.2",
|
|
"preact-iso": "^2.11.0",
|
|
"preact-render-to-string": "^6.6.3",
|
|
"random-js": "^2.1.0",
|
|
"tailwindcss": "^4.1.17"
|
|
},
|
|
"devDependencies": {
|
|
"@preact/preset-vite": "^2.10.2",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/preact": "^3.2.4",
|
|
"@types/node": "^24.10.0",
|
|
"@vitest/ui": "4.0.7",
|
|
"eslint": "^9.39.1",
|
|
"eslint-config-preact": "^2.0.0",
|
|
"happy-dom": "^20.0.10",
|
|
"rollup-plugin-visualizer": "^6.0.5",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^7.2.1",
|
|
"vitest": "^4.0.7"
|
|
},
|
|
"eslintConfig": {
|
|
"extends": "preact"
|
|
},
|
|
"packageManager": "pnpm@9.15.1+sha512.1acb565e6193efbebda772702950469150cf12bcc764262e7587e71d19dc98a423dff9536e57ea44c49bdf790ff694e83c27be5faa23d67e0c033b583be4bfcf"
|
|
}
|