Skip to content

Repository files navigation

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

🛡️ Firebase Security & Config

Firestore security rules for this project are not managed in this repository. They are maintained in the central config repo to ensure project-wide consistency:

👉 firebase-internal-config

How to update/deploy rules:

  1. Navigate to the firebase-internal-config repository.
  2. Edit firestore.rules under the /application-tracker namespace.
  3. Run firebase deploy --only firestore.

Firebase Hosting

This project is configured to deploy a single Vite SPA to Firebase Hosting.

Local deploy

  1. Install Firebase CLI (latest):
yarn global add firebase-tools
  1. Authenticate and select the project:
firebase login
firebase use robbchar-3db11
  1. Build and deploy Hosting:
yarn build
firebase deploy --only hosting

CI deploy

GitHub Actions in .github/workflows/firebase-hosting.yml builds on every push to main and deploys to the live channel. Pull requests to main deploy a preview channel.

To enable CI deploys, add the service account JSON to the repository secret FIREBASE_SERVICE_ACCOUNT.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

exportdefaultdefineConfig([globalIgnores(['dist']),{files: ['**/*.{ts,tsx}'],extends: [// Other configs...// Remove tseslint.configs.recommended and replace with thistseslint.configs.recommendedTypeChecked,// Alternatively, use this for stricter rulestseslint.configs.strictTypeChecked,// Optionally, add this for stylistic rulestseslint.configs.stylisticTypeChecked,// Other configs...],languageOptions: {parserOptions: {project: ['./tsconfig.node.json','./tsconfig.app.json'],tsconfigRootDir: import.meta.dirname,},// other options...},},])

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.jsimportreactXfrom'eslint-plugin-react-x'importreactDomfrom'eslint-plugin-react-dom'exportdefaultdefineConfig([globalIgnores(['dist']),{files: ['**/*.{ts,tsx}'],extends: [// Other configs...// Enable lint rules for ReactreactX.configs['recommended-typescript'],// Enable lint rules for React DOMreactDom.configs.recommended,],languageOptions: {parserOptions: {project: ['./tsconfig.node.json','./tsconfig.app.json'],tsconfigRootDir: import.meta.dirname,},// other options...},},])

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages