¿Cuál es la mejor manera de compartir componentes de la interfaz de usuario en múltiples proyectos?

No he usado React junto a algunas pruebas simples, ya que está en mi lista TODO. Sin embargo, no importa mucho porque compartir componentes es una necesidad común cuando se utiliza cualquier tecnología.

Algunas opciones:

  1. Tratar los componentes como parte del código fuente y extraer cambios cuando sea necesario.
  2. Tener componentes compilados / empaquetados y usarlos como una dependencia del sistema de compilación (NPM, o alguna otra herramienta de marco / compilación que use).

Dependiendo de la estructura del proyecto y de otros aspectos, el mejor método puede variar. Puede probar esos métodos en dos proyectos de demostración y comparar lo que es mejor para su equipo. Tenga en cuenta que la configuración de los proyectos de demostración puede simplificarse / ser diferente de cualquier palabra real.

Método 2) podría requerir más trabajo de configuración. El método 1) puede no ser una opción, por ejemplo, cuando los componentes ya deben estar compilados / minimizados o no puede compartir el código fuente con proyectos externos.

Esta es una excelente pregunta con solo una respuesta mediocre, que yo sepa.

Me comprometo e inserto mi módulo common en un repositorio privado de GitHub, y luego uso las URL de Git como dependencias para hacer referencia a él. Específicamente, uso el método x-oauth-basic, que requiere generar un token OAuth.

Una trampa es que debes tener cuidado de npm run build (o lo que sea tu objetivo de construcción) antes de comprometerte, para que tu dist (o donde sea que vaya tu build) esté en GitHub.

Espero que ayude. Incluso más, ¡espero que alguien más tenga una mejor solución!

Yo diría desafiante que use Bit.

Fue EXACTAMENTE para ese propósito.

Con Bit, puede aislar fácilmente los componentes de un proyecto (no es necesario refactorizarlos), organizarlos en la nube y usarlos en otros proyectos, mientras sincroniza fácilmente los cambios entre ellos.

Darle una oportunidad.

Suponiendo que está hablando de componentes React, puede copiar el código o publicarlos como módulos privados npm e instalarlos en los proyectos que los usa.