@shardev/vite-plugin
v7.0.4
Published
> 🔌 Plugin para Vite que permite compilar múltiples módulos React independientes dentro de un proyecto Laravel monolítico.
Readme
📦 @shardev/vite-plugin
🔌 Plugin para Vite que permite compilar múltiples módulos React independientes dentro de un proyecto Laravel monolítico.
📦 Características principales
- Compilación modular: permite compilar todos los módulos o solo uno específico (
--module=mod1). - Integración con Laravel + React.
- Soporte para múltiples entradas Vite.
- Compatible con entornos
devybuild. - Permite estructura modular en
resources/react/mod1. - Extensible mediante opciones.
🚀 Instalación
npm install @shardev/vite-plugin🛠️ Ejemplo de uso general
1. En tu vite.config.ts
import { defineConfig } from 'vite'
import shardev from '@shardev/vite-plugin'
export default defineConfig(() => {
return {
plugins: [
shardev({
base: '/',
moduleName: process.env.MODULE_NAME, // o usa --module=mod1
modulesDir: 'resources/react'
}),
],
}
})⚙️ Opciones
| Opción | Tipo | Descripción | Valor por defecto |
|--------------|----------|---------------------------------------------------------------------|--------------------------|
| base | string | Ruta base para servir los assets. | '/' |
| moduleName | string | Nombre del módulo a compilar (se puede usar con --module=mod1). | 'shardev' |
| modulesDir | string | Carpeta raíz donde están los módulos React. | 'resources/react' |
🧪 Modo desarrollo
Puedes iniciar Vite en modo desarrollo apuntando a un solo módulo:
npm run dev -- --module=mod1Esto compilará resources/react/mod1.
🏗️ Compilación de todos los módulos
npm run buildPor defecto compilará todos los módulos dentro de resources/react.
📁 Estructura esperada
resources/
└── react/
├── mod1/
│ └── index.tsx
├── mod2/
│ └── index.tsx
└── ...🤝 Contribuciones
¡Contribuciones son bienvenidas! Puedes enviar:
- Reportes de errores
- Funcionalidades nuevas
- Refactor o mejoras visuales
📄 Licencia
Este proyecto está licenciado bajo la MIT License.
✉️ Contacto
Desarrollado por shardev.com
📫 [email protected]
