with tag tab repositorio notes delete create commits clonar github open-source

github - tag - ¿Cuál es el significado del directorio/dist en proyectos de código abierto?



github release notes (3)

Para responder a su pregunta original sobre el significado de la carpeta dist :

El shortform dist significa distributable y se refiere a un directorio donde se almacenarán los archivos que pueden ser utilizados directamente por otros sin la necesidad de compilar o minificar el código fuente que se está reutilizando.

Ejemplo: si deseo usar el código fuente de una biblioteca Java que alguien escribió, entonces primero debe compilar las fuentes para hacer uso de ella. Pero si un autor de la biblioteca ya coloca la versión precompilada en el repositorio, puede continuar. Tal versión ya compilada se guarda en el directorio dist .

Algo similar se aplica a los módulos de JavaScript. Por lo general, el código JavaScript se minimiza y se ofusca para su uso en producción. Por lo tanto, si desea distribuir una biblioteca de JavaScript, es aconsejable colocar el código fuente simple (no minificado) en un directorio src (fuente) y la versión minimizada y ofuscada en el directorio dist (distributable), para que otros puedan obtener el código minificado. versión de inmediato sin tener que minificarlo por sí mismos.

Nota: Algunos desarrolladores usan nombres como target , build o dest (destination) en lugar de dist . Pero el propósito de estas carpetas es idéntico.

Desde que vi por primera vez un directorio dist/ en muchos proyectos de código abierto, generalmente en GitHub, me he estado preguntando qué significa. (Soy extranjero, no nativo en inglés)

Con dist , vendor , lib , src y muchos otros nombres de carpetas que vemos con bastante frecuencia, a veces me pregunto cómo debería nombrar mis propias carpetas.

¡Corrígeme si estoy equivocado!

  • src: contiene las * fuentes **. A veces, solo las fuentes puras, a veces con la versión minificada, dependen del proyecto.
  • proveedor: contiene otras dependencias, como otros proyectos de código abierto.
  • lib: Buena pregunta, en realidad está muy cerca del vendor , dependiendo del proyecto, podemos ver uno u otro o ambos ...
  • dist: por lo que vi, contiene los archivos de "producción", el que deberíamos usar si queremos usar la biblioteca .

¿Por qué el código abierto es tan confuso? ¿No es posible hacer las cosas más claramente? Al menos por idioma porque algunos idiomas usan nombres específicos.


Respuesta a la pregunta principal ...

/dist : "distribución", el código / biblioteca compilado.

La estructura de la carpeta es diferente para los sistemas de compilación y el lenguaje. Aquí hay algunas convenciones estándar ...

  • src/ : archivos "fuente" para construir y desarrollar el proyecto.
  • dist/ : "distribución", el código / biblioteca compilado.
  • lib/ : dependencias externas (cuando se incluyen directamente).
  • test/ : los scripts de pruebas del proyecto, burlas, etc.
  • vendor/ : las dependencias generalmente se ponen aquí a través de la administración de dependencias.
  • bin/ : archivos que se agregan a su RUTA cuando están instalados.

Archivos:

  • README.md : siempre lea esto primero.
  • LICENSE.md : cualquier rights le haya otorgado con respecto al proyecto.
  • CONTRIBUTING.md : cómo ayudar con el proyecto.

Específico (estos podrían continuar para siempre):

  • package.json : describe la biblioteca y las dependencias (si es un paquete JS).
  • composer.json : igual que el anterior pero para paquetes PHP vía compositor.
  • .travis.yml : archivo de configuración para el entorno de Travis CI.

Resumen de las carpetas:

  • bin: binarios
  • src: fuente
  • incluir: encabezados C / C ++
  • lib: librerías C / C ++
  • contrib: contribución de otras personas
  • doc / docs: documentaciones
  • hombre: manual (Unix / Linux)