Exploración de Monorepo basada en Rush
En el desarrollo de equipos, a menudo tenemos muchos kits de herramientas y proyectos. A medida que el equipo se desarrolla, surgirán más y más problemas. Esta vez comparto el uso de Rush para resolver los problemas anteriores y explorar las mejores prácticas del escenario real de Monorepo en la práctica.
Primero, aprendamos cómo iniciar Rush
npm install -g @microsoft/rush
Puedes usar rush h para determinar si la instalación se realizó correctamente
Después de una instalación exitosa, puede inicializar el proyecto mediante el comando rush init
Estructura de directorios
Hay varias formas de instalar dependencias de Rush:
1. rush add -p PACKAGE --dev --all
Ejecute el comando en el directorio para instalar todos los paquetes
2. rush add -p PACKAGE --dev
Se ejecuta en el paquete, solo se instala en el paquete actual
El comando de actualización urgente instalará las dependencias basadas en el archivo package.json y actualizará el archivo envuelto según sea necesario (el archivo envuelto es el centro para almacenar las dependencias y versiones de todos los proyectos en el almacén. Colóquelo en la carpeta "common/config/rush"). Este comando Rush instalará todos los proyectos en el almacén a la vez. Cuando extraes archivos de Git o modificas
el archivo package.json, necesitas ejecutar una "actualización urgente" para comenzar a trabajar. Si no se requiere ninguna actualización, la "actualización urgente" se completará instantáneamente.
La diferencia entre actualización urgente e instalación urgente:
El comando "instalación urgente" instalará dependencias para todos los proyectos en el almacén en función del archivo retractilado creado/actualizado por "actualización urgente". ').
Para borrar las dependencias, puede usar el comando Rush Purge para borrar node_modules y las dependencias relacionadas con Rush.
A través del proceso anterior, podemos obtener un proyecto vacío, pero. un monorepo completo requiere un proceso de lanzamiento completo. También necesitamos algo de configuración.
El rush.json generado durante el inicio de rush se configura en proyectos. Los proyectos configurados en proyectos pueden ser reconocidos por rush y pueden ejecutar actualizaciones urgentes. Otros comandos relacionados. Para los paquetes que deben publicarse, puede configurar el atributo shouldPublish para operar el proceso de envío del paquete.
Acerca del lanzamiento de paquetes múltiples
En Rush, el cambio rápido es el punto de partida del proceso de publicación del paquete, que generará el archivo de cambios, /common/changes/[packages]/ [feature_time].json, el proceso es el siguiente:
Versión urgente o publicación urgente: la aplicación actualizará el número de versión según el changefile.json generado. El número de versión del paquete superior publicado. El paquete se puede actualizar. Publicación urgente: la publicación publicará el paquete correspondiente según changefile.json.
El proceso de publicación de Rush es básicamente el mismo que el de Changesets.
Para publicar fuentes privadas rápidamente, se requiere la configuración de fuentes privadas y la información de identidad se puede verificar inyectando variables de entorno