Exactly same game as wordle from NY times, BUT you can play unlimited times each day :)
- Modernized TypeScript Wordle game migrated from webpack to Vite 8
- Static site served via GitHub Pages at
https://www.javascript.fun/wordle/ - Build artifacts are auto-generated — never edit
docs/manually
- Node.js: 26.x (CI uses
setup-node@v4) - Yarn: ≥v1.22 (frozen lockfile enforced in CI)
- Vite: ^8.1.4 (verified in
package.json)
# Install dependencies (with lockfile validation)
yarn install --frozen-lockfile
# Development server (HMR on port 3000)
yarn dev
# Build for production (outputs to /docs)
yarn build
# Run ESLint
yarn lint
# Run tests with coverage
yarn test| File/Path | Purpose |
|---|---|
index.html |
Root Vite template (main entry point) |
vite.config.ts |
Build config (base: './', outDir: 'docs') |
src/**/*.module.less |
CSS Modules files (non-module .less not supported) |
src/words.ts |
Word list (gitignored from linting) |
docs/ |
Generated output — never edit manually |
- Build system: All output must go through Vite —
docs/is regenerated onyarn build - CSS/LESS: Must use
.module.lessextensions for CSS Modules - Deployment: Changes to
masterbranch trigger GitHub Actions to deploydocs/ - CI workflow: Validates
index.html,vite.config.ts, andtsconfig.jsonexplicitly - TypeScript: Modern config (ES2020, moduleResolution: "bundler") — no manual
tsccalls
🚨 Critical: Never modify
docs/*files directly. All changes must originate from source files and be regenerated via Vite.
💡 For GitHub Pages subpath compatibility:
base: './'invite.config.tsensures relative asset paths work under/wordle/.
🔐 Security note: All external dependencies (Google Fonts, GTM) are explicitly declared in
index.html— no dynamic injections.