Cuando se habilitan las dependencias inyectadas, los paquetes del espacio de trabajo se copian, lo que les permite ejecutarse con diferentes versiones del par. Como se puede ver en este ejemplo, el componente Button utiliza la versión 17 de React, pero el componente Card utiliza la versión 16 de React. Cuando ejecutamos pruebas para el componente Button, queremos utilizar la versión 17 de React. En cambio, cuando ejecutamos el componente Button desde dentro del componente Card, queremos que Button utilice la misma versión de React que Card. Por lo tanto, se instala la versión 17 de React en el directorio node_modules de Button. Mientras tanto, Card no hace referencia directamente a Button desde el espacio de trabajo, sino desde un subdirectorio oculto donde se alinea con la versión 16 de React. Esta configuración significa que hay dos instancias del componente Button en el espacio de trabajo, una con la versión 17 de React y otra, una copia dentro del directorio node_modules.pnpm con la versión 16 de React. La única desventaja de este enfoque es que una vez que se modifica el componente Button, es necesario volver a ejecutar el proceso de instalación para que pnpm pueda actualizar los archivos con el componente Button en las instancias copiadas.
Después de discutir los desafíos asociados con los monorepos, me gustaría presentar otra herramienta que aborda estos problemas de manera integral. El nombre de la herramienta es Bit. Si bien Bit no es un gestor de paquetes, la gestión de paquetes es una de sus principales responsabilidades. Entonces, ¿qué es exactamente Bit? Es una cadena de herramientas diseñada para construir software componible. Puedes conceptualizarlo como una alternativa a Git, GitHub, el registro de npm y varios clientes de npm. Al utilizar Bit, sirve como tu sistema de control de versiones, administra tus dependencias y publica tus paquetes. Para esta presentación, nos centraremos únicamente en la gestión de paquetes, por lo que solo discutiré el aspecto de instalación de Bit.
De muchas maneras, un espacio de trabajo de Bit se asemeja a un espacio de trabajo de pnpm. Es una colección de paquetes o componentes. Sin embargo, hay una diferencia distintiva, ya que no hay paquetes en archivos en un espacio de trabajo de Bit. En su lugar, todas las dependencias para todos los componentes se declaran en un solo manifiesto ubicado en la raíz del espacio de trabajo. Además, no hay un campo separado para las dependencias de desarrollo. Este enfoque simplificado es factible porque Bit realiza un análisis de código de los componentes dentro del espacio de trabajo. Identifica automáticamente qué componentes utilizan qué dependencias y distingue si una dependencia en particular es para producción o desarrollo para un componente dado. Permíteme mostrarte ahora una demostración rápida de un espacio de trabajo de Bit. Para la demostración, utilizaré VS Code con la extensión de Bit instalada. Como puedes ver, ya lo tengo instalado en mi computadora. Vamos a la sección de Bit y comencemos un nuevo espacio de trabajo. Bit ha creado un manifiesto de espacio de trabajo para mí. Ahora generemos algunos componentes nuevos utilizando la herramienta de línea de comandos de Bit. Crearé dos nuevas aplicaciones de nodo, app1 y app2. Aquí están los directorios de mis componentes de aplicaciones recién creados.
Comments