migrate CRA to Next.js 16 + React 19 + TypeScript + Tailwind v4

- replace CRA scaffold with Next.js static export config
- add app router pages: home, homelab, archive
- add components: Nav, Footer, Hero, Skills, ProjectCard, ThemeScript
- add ThemeContext for dark mode with FOUC prevention
- add data layer: projects.ts, services.ts
- update .gitignore for Next.js (ignore .next/, out/, next-env.d.ts)
- add docs: handoff plan, homelab decisions, style reference
This commit is contained in:
lerko96
2026-04-10 18:46:19 -04:00
parent 798027bb9d
commit ea63347cd6
63 changed files with 8342 additions and 19830 deletions

View File

@@ -1,45 +1,31 @@
{
"name": "react-scss2",
"homepage": "https://lerko96.github.io",
"name": "lerko96-portfolio",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
"gh-pages": "^3.2.3",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3",
"web-vitals": "^1.1.2"
},
"homepage": "https://www.lerko96.com",
"scripts": {
"dev": "next dev",
"build": "next build",
"postbuild": "node -e \"require('fs').writeFileSync('out/.nojekyll', '')\"",
"start": "next start",
"lint": "eslint",
"predeploy": "npm run build",
"deploy": "gh-pages -b master -d build",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
"deploy": "gh-pages -b master -d out -t"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
"dependencies": {
"next": "16.2.2",
"react": "19.2.4",
"react-dom": "19.2.4"
},
"devDependencies": {
"node-sass": "^6.0.1"
"gh-pages": "^6.0.0",
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "16.2.2",
"tailwindcss": "^4",
"typescript": "^5"
}
}