webpack-nexus 🐨: mi primer proyecto open source
La historia detrás de webpack-nexus, un pequeño CLI que construí para hacer scaffolding de proyectos JavaScript/React y aprender cómo funcionan por dentro herramientas como create-react-app.
Hace un año me preguntaba cómo se construyen cosas como create-react-app. En mayo de este año decidí intentar crear mi propio "create-react-app" para aprender sobre CLIs.
Así que, después de 2 meses de investigación y desarrollo, terminé mi propio CLI y quiero compartirlo contigo.
webpack-nexus 🐨: GiancarlosIO/webpack-nexus
¿Por qué creé mi propio CLI?
Lo creé porque quiero aprender a construir algo como create-react-app/next.js. No intento competir con los grandes CLIs/boilerplates actuales.
Sé que no es mejor que create-react-app o next.js, pero lo hice para cubrir mis propios requerimientos de configuración de webpack y vscode. Tal vez a ti también te sirva.
Features
- Webpack: configuraciones de desarrollo y producción inspiradas en el increíble trabajo de react-boilerplate 🔨
- Babel: ES6/ES7, jsx y más plugins configurados para modo de desarrollo y producción. ⚛️
- Estilos con styled-components 💅
- Tipado con typescript y eslint ✔️
- Formateo automático con prettier 🔄
- vscode configurado para trabajar con eslint + typescript + prettier 💙
- React-apollo: próximamente...
- Jest: próximamente...
- Husky + lint-staged: próximamente...
- webpack-nexus.js: archivo para configurar/sobrescribir la configuración actual de webpack/babel, próximamente...
- Setup/configuraciones para atom y sublime, próximamente...
¿Cuál es la diferencia con otros proyectos como create-react-app/react-boilerplate/next.js?
Tiene muchas configuraciones específicas que uso en todos mis side projects, así que quizá a ti te vaya bien con CRA o NEXTJS.
Probé create-react-app y me parece increíble, pero no me gusta cómo funciona.
- Necesitas hacer eject para agregar tus propios plugins de webpack o babel.
- Necesitas hacer eject para configurar/agregar reglas de prettier/eslint.
- Si tienes errores de lint, lanza un error. A veces solo quiero probar algunos edge cases. webpack-nexus no lanza errores porque eslint no está configurado dentro de webpack: solo se usa para lintear los archivos en vscode.
- No tiene soporte para múltiples entries. Se puede configurar, pero de nuevo, necesitas hacer eject.
- No trae styled-components instalado.
- No tiene apollo graphql configurado. Graphql es algo que siempre uso en mis proyectos.
- No tiene react-hot-loader configurado.
¿react-boilerplate? Me gusta mucho, pero yo solo quería un CLI simple para hacer scaffolding de mis proyectos y no tener que clonar un repositorio cada vez.
Y... no es comparable con next.js porque no es un framework de React... pero ¿quizá en el futuro pueda serlo? 🤔
Espero que este proyecto te ayude a hacer scaffolding de tu próximo gran side project. 😊
Puedes ver la documentación aquí: GiancarlosIO/webpack-nexus
Y... eso es todo. ¡¡¡Gracias por leer!!!