Proyecto frontend desarrollado con React + TypeScript + Vite + Tailwind CSS.
- React 19 - Framework de UI
- TypeScript - Tipado estático
- Vite - Build tool y dev server
- Tailwind CSS - Framework CSS utility-first
- ESLint - Linting y formateo de código
- ⚡ Vite - Desarrollo rápido con HMR
- 🎨 Tailwind CSS - Estilos modernos y responsivos
- 📱 Responsive - Diseño adaptativo
- 🔧 TypeScript - Tipado fuerte
- 🛠️ Path Aliases - Imports organizados (@modules, @utils, @shared, @infra)
src/
├── modules/ # Módulos de la aplicación
├── utils/ # Utilidades y helpers
├── shared/ # Tipos y componentes compartidos
├── infrastructure/ # Configuración de infraestructura
├── assets/ # Recursos estáticos
└── main.tsx # Punto de entrada
npm install# Desarrollo
npm run dev
# Build para producción
npm run build
# Preview del build
npm run preview
# Linting
npm run lintEl proyecto utiliza aliases de path para mantener el código organizado:
@modules/*→src/modules/*@utils/*→src/utils/*@shared/*→src/shared/*@infra/*→src/infrastructure/*
import { formatDate } from '@utils';
import { User } from '@shared/types';The React Compiler is currently not compatible with SWC. See this issue for tracking the progress.
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Remove tseslint.configs.recommended and replace with this
tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
tseslint.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.js
import reactX from 'eslint-plugin-react-x';
import reactDom from 'eslint-plugin-react-dom';
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Enable lint rules for React
reactX.configs['recommended-typescript'],
// Enable lint rules for React DOM
reactDom.configs.recommended,
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
]);