Lo intenté, lo intenté. Bien. Hasta ahora hemos estado hablando de proyectos con probablemente un conjunto de dependencias, ¿verdad? ¿Qué pasa con los monorepos? Y no voy a entrar en una discusión aquí sobre si los monorepos son buenos o malos. Solo voy a reconocer el hecho de que hay proyectos que los utilizan.
Lo intenté, si no estás familiarizado, los monorepos son una forma de tener, lo intenté bases de código que idealmente comparten dependencias o comparten un repositorio. Lo intenté, lo intenté una de las formas fenomenales de hacer esto es Yarn workspaces, que nuevamente, te permite tener varios bases de código en un repositorio que comparten dependencias. De hecho, Yarn usa esto. Yarn usa Yarn workspaces para tener cosas como el sitio web, el paquete en sí, teniendo múltiples paquetes, todo en un repositorio, todo en una base de código compuesta por varias bases de código.
Lo intenté, lo intenté, y X hace lo mismo, incluyendo herramientas súper poderosas para CI y otras automatizaciones para trabajar y hacer que trabajar en bases de código complejas sea mucho más sencillo. Lo intenté, lo intenté, lo intenté, lo intenté, lo intenté, lo intenté, y luego está npm shrinkwrap. No sé si has oído hablar de él. Estas son herramientas que vienen con npm, que siempre encuentro tan fascinantes.
Lo intenté, y en concepto, npm shrinkwrap crea un archivo de bloqueo, muy similar a lock json. Lo intenté, lo intenté, cambia eso con la diferencia de que intenté incluirlo al publicar un paquete, y podrías pensar, ¿por qué demonios necesitaría eso? Por ejemplo, intenté mis herramientas usando algo como npm publish te permitirá publicar este archivo de bloqueo shrinkwrap. Lo intenté, lo intenté, recuerda cuando estábamos hablando de actualizar dependencias, también hay herramientas como npm audit para ayudarte a descubrir cuál de tus dependencias está desactualizada, tiene una brecha de seguridad y necesita una actualización urgente, lo cual nuevamente, no tiene que hacerse a mano. También puede hacerse automáticamente por servicios como Dependabot, Snyk y Renovate.
Lo intenté, lo intenté, así que genial, esas son algunas herramientas para trabajar con dependencias. Intenté al hacer esas actualizaciones, ¿cuán grande es el salto que hacemos? Lo intenté, intenté tomar la decisión de, oh, simplemente voy a ir hasta la última versión, porque cuando estaba trabajando en este proyecto, ¿verdad? Podría haber tomado la ruta de actualizar de React Native 55 a 59, asegurarme de que todo funcione, y seguir desde allí. 59 fue un hito, porque introdujo algunas cosas de JavaScript para Android, en general, para hacer todo más eficiente con React Native. Lo intenté, habría pasado de React Native 55 a React Native 60.
Lo intenté, lo intenté, intenté todos los módulos nativos para hacer cosas como trabajar con la cámara y ese tipo de cosas están vinculados automáticamente, lo que significa que no tengo que hacer ningún complicado, ¿cómo se llaman?, vinculación de dependencias con las compilaciones de iOS y Android, respectivamente. Lo intenté, lo intenté, pero fui hasta 0.74.
Lo intenté, podrías preguntarte por qué, eso suena realmente doloroso, y la respuesta a eso es un por qué no bastante descarado. Lo intenté, lo intenté, porque intenté avanzar un poco y simplemente dejarlo como está, pero aquí está la cosa, no solo me aseguro de que estoy en la versión más estable, recuerda, cuando trabajas con algo como React Native, no solo dependes del proyecto de JavaScript el proyecto React, el proyecto React Native, también dependes de los caprichos de Apple y Google haciendo cambios en sus plataformas, por lo que mantenerse actualizado es una muy buena idea con este tipo de cosas. Pero también, lo intenté, lo intenté, va a suceder eventualmente, mejor sacarlo del camino. Lo intenté, y luego puedes adoptar un flujo de trabajo de hacerlo más a menudo. Intenté otra cita de Martin Fowler que escribe, si duele, hazlo más a menudo. Tiene la propiedad feliz de parecer sin sentido en la superficie pero ofrecer un significado valioso cuando profundizas.
Comments