Estoy a punto de embarcarme en la creación de una biblioteca Javascript. ¿Qué cosas debo saber, tanto técnicas como admirativas?

1. Usa GitHub – Quiero decir, realmente úsalo. Utilice los problemas de GitHub como su lista personal de tareas pendientes. Crea nuevas sucursales. Establecer etiquetas para diferentes versiones.

2. Escribir exámenes – se explica por sí mismo.

3. Configure un flujo de trabajo: configure un flujo de trabajo para ejecutar pruebas, crear la biblioteca (concatenar y minificar) y cualquier otro paso que considere útil. Puedes usar make o rake para esto. Recomiendo encarecidamente usar Grunt, ya que Grunt está específicamente orientado a JavaScript, y dado que Grunt es utilizado por las bibliotecas JS más populares.

4. Use el patrón del módulo – Use el patrón de diseño del módulo: envuelva todo su código en un IIFE (expresión de función invocada inmediatamente). Por lo general, cualquier herramienta de compilación que use para minificar / concatenar (uglify, etc.) le dará la opción de agregar fragmentos de código al principio o al final del script concatenado final.

5. Empaquete su proyecto : registre su proyecto con los distintos administradores de paquetes que existen: npm, bower, component son los tres grandes. En su caso, puede ignorar npm. Deberá configurar archivos de puntos con metadatos para cada registro (lea sus documentos). Asegúrese de seguir semver al versionar su proyecto.

6. Documentación : en algún lugar debe documentar: 1) Instrucciones de instalación (incluso algo como “npm install foo”), 2) Una licencia, 3) Pautas de contribución y / o una guía de estilo, 4) Instrucciones de flujo de trabajo (para hacer, rastrillar, o Grunt), 5) notas de compatibilidad del navegador y 6) la API, por supuesto.

Puntos extra:

7. Empaquete su aplicación para AMD : cree versiones compatibles de RequireJS / AMD de su proyecto.

8. Cree una aplicación de demostración o una captura de pantalla : ¡muestre su proyecto para que la gente realmente entienda lo que hace!

9. Cree un sitio web: use GitHub para generar automáticamente un sitio web a partir de su archivo Léame y póngalo en un dominio * .github.io.

Recientemente realicé el proceso de creación de un proyecto de código abierto, en el que todavía estoy trabajando activamente (conector descarado: Nodetron (enlace GitHub), es una biblioteca de JavaScript para aplicaciones punto a punto con el objetivo de moverme como gran cantidad de procesamiento / almacenamiento de datos desde el lado del servidor hasta el lado del cliente. ¡Nodetron todavía está en desarrollo activo y me encantaría que otros se involucren!)

CSS en un complemento es difícil. Asegúrese de que todas sus clases tengan el prefijo para no chocar con el código de cliente / usuario; como: .morph-show {} y no: .show {}

Y no importa cuánto lo intente, un cliente hará algo como: DIV {display: inline; } y te culpo por un complemento roto.

La consistencia de la API es clave.

No quiero tener que modificar mi código porque cambiaste tu API. Suponga que algo que ya no puede modificarse depende de su código y funciona en consecuencia.

Escribí un artículo que detalla el proceso, si alguien está interesado: Bootstrapping a JavaScript Library.

Aquí hay una gran publicación:
Consejos para mantener una biblioteca de código abierto