JS: Configuración del entorno
Teoría: El punto de entrada
Cuando comenzamos a crear un proyecto en JavaScript, ya sea una aplicación o una biblioteca, necesitamos saber por dónde empieza todo. Ese primer archivo que se ejecuta es lo que llamamos el punto de entrada (en inglés, entry point).
Para entenderlo mejor, pensemos en una aplicación como una obra de teatro. El punto de entrada sería la primera escena: la que da inicio a todo lo que viene después. Sin esa primera escena, los actores no sabrían qué hacer.
¿Cómo luce el punto de entrada en una aplicación?
A veces nuestros proyectos tienen muchos archivos, pero siempre hay uno que se encarga de poner todo en marcha. Veamos un ejemplo sencillo:
Estructura del proyecto
Archivos involucrados
Este archivo define una función. Lo único que hace es mostrar un mensaje en la consola.
Este segundo archivo es nuestro punto de entrada. Importa el archivo anterior y lo ejecuta.
¿Qué pasa si ejecutamos esto?
Si abrimos una terminal y escribimos:
Veremos en la consola:
¡Bienvenido a mi aplicación!
En este proyecto, index.js es claramente el punto de entrada. Es donde empieza todo.
¿Y qué pasa con las bibliotecas?
En las bibliotecas, el uso del punto de entrada es distinto. No se ejecuta automáticamente como en una aplicación. En lugar de eso, las bibliotecas contienen funciones listas para ser usadas cuando las necesitemos.
Por ejemplo, Lodash es una biblioteca que tiene muchas funciones útiles. Supongamos que solo queremos una:
Aquí usamos solo una función, pero no indicamos ningún archivo específico. Node.js sabe dónde buscar porque cada biblioteca define su punto de entrada en el archivo package.json.
Revisemos un package.json básico:
La propiedad "main" le dice a Node.js qué archivo exporta la funcionalidad principal de la biblioteca.
Así, cuando alguien instala tu paquete, puede acceder a sus funciones sin preocuparse por la ruta exacta del archivo.
Proyecto que es aplicación y también biblioteca
Veamos un ejemplo con algo práctico. Imaginemos que queremos crear una herramienta para calcular el año de nacimiento según la edad.
Versión solo como aplicación
Funciona, pero no es flexible. Si queremos reutilizar la fórmula en otra parte, sería mejor tenerla en una función separada.
Mejorando el proyecto: aplicación + biblioteca
Vamos a mover la lógica a un archivo independiente:
Ahora tenemos dos archivos: uno que contiene la lógica y otro que actúa como punto de entrada para la aplicación.
Además, si en package.json definimos:
Hacemos que el archivo src/index.js también sea el punto de entrada de la biblioteca. Esto significa que otros proyectos podrían importar nuestra función fácilmente.
Resumen
- El punto de entrada es el archivo principal donde arranca una aplicación o una biblioteca.
- En una aplicación, ese archivo ejecuta la lógica inicial del programa.
- En una biblioteca, el punto de entrada define las funciones que estarán disponibles para otros proyectos.
- Se define normalmente en el archivo
package.jsonusando la propiedad"main". - Dividir la lógica en archivos o módulos nos ayuda a tener un código más limpio, reutilizable y fácil de mantener.
- Un mismo proyecto puede funcionar como aplicación y como biblioteca, si organizamos correctamente su estructura.
Completado
0 / 11