Sobre el proyecto

react-app-rewired es una herramienta para desarrolladores que permite sobrescribir y personalizar la configuración de webpack en proyectos de Create React App (CRA) sin usar el comando 'eject'. Conserva los beneficios de la configuración cero de CRA mientras brinda a los desarrolladores la flexibilidad de añadir plugins, loaders y otras personalizaciones que necesiten. La herramienta funciona interceptando los comandos estándar de react-scripts (start, build, test) y aplicando sobrescrituras definidas por el usuario desde un archivo config-overrides.js. Este archivo puede exportar una única función para personalizar webpack o un objeto con funciones separadas para configuraciones de webpack, Jest, devServer y rutas. Las capacidades clave incluyen: personalizar reglas y plugins de webpack para compilaciones de desarrollo y producción; modificar la configuración de pruebas de Jest, incluidos patrones de rutas de prueba y presets de Babel; sobrescribir la configuración del servidor de desarrollo de Webpack para certificados HTTPS y ajustes de proxy; y ajustar las rutas de proyecto pasadas a webpack y Jest. El proyecto admite tanto CRA 1.x (Webpack 3) como CRA 2.x (Webpack 4), y la versión 2.0 elimina las funciones auxiliares de rewire en favor de la configuración directa. También admite paquetes personalizados de react-scripts mediante la bandera --scripts-version, lo que permite su uso con variantes de TypeScript como react-scripts-ts. Existe un gran ecosistema comunitario de plugins de rewire para casos de uso comunes, incluidos plugins de Babel (emotion, lodash, styled-components), plugins de webpack (favicons, imagemin, bundle analyzer) y loaders (TypeScript, SCSS, SVG, YAML). El archivo config-overrides también puede especificarse como un directorio para una organización modular o pasarse mediante la línea de comandos para mayor flexibilidad. Advertencias importantes: usar react-app-rewired rompe las garantías oficiales de CRA, lo que significa que usted es dueño de la configuración y no recibe soporte oficial. El autor recomienda Next.js o Razzle para proyectos que necesiten una configuración extensa de webpack lista para usar. Alternativas como customize-cra, Rescripts y craco también están disponibles para compatibilidad con CRA 2.0+.