Hoy lo guiaré a través de los conceptos básicos de Node.js y NPM, incluidas explicaciones sobre cómo desarrollar para la web en general. Solo una nota por adelantado: si está familiarizado con el desarrollo web básico y NPM, puede omitir este artículo y obtener más información sobre el muy útil NPX aquí.
¡Vale genial! ¡Empecemos!
Nodo.js
Si está leyendo esto, probablemente ya haya descargado Node.js + NPM y haya comenzado a sumergirse en las aguas de Javascript. Sin embargo, los primeros pasos ya pueden parecer aterradores: "Solo quiero escribir un pequeño programa en Javascript, ¿por qué necesito todo lo demás?". Eso es comprensible, pero realmente no es un gran problema en absoluto.
Comencemos por el principio: simplemente puede crear un archivo Javascript en cualquier parte de su computadora, indicado por el sufijo '.js'. Este archivo se puede llenar con el código de la forma que desee, pero falta una cosa: ¿cómo ejecuta realmente su programa? Ahí es donde entra en juego Node.js.
Node.js es un entorno de tiempo de ejecución, explícitamente para Javascript. Como implica la descripción, Node puede ejecutar su código Javascript en un entorno específico que proporciona Node. El proceso es siempre el mismo: primero inicia Node.js, y cuando se activa Node (lo que significa que ha terminado de iniciarse), puede proporcionarle su código Javascript.
Hay dos formas en que su Javascript se puede proporcionar a Node como entrada:
- Directamente al proceso de Nodo en ejecución, línea por línea, sin archivos incluidos
- Diciéndole a Node qué archivo Javascript cargar, sin ninguna entrada línea por línea
node
Linea por linea
Una vez que haya instalado correctamente Node.js (que es simplemente descargar + ejecutar el instalador, las descripciones se encuentran en el sitio web de Node), puede iniciar Node.js desde cualquier lugar, ya sea en su Terminal (macOS/Linux) o PowerShell (Windows) . El comando se ve así.
¡Sí, eso es todo! ¡Acabas de lanzar con éxito Node! ¿Te diste cuenta de lo rápido que sucedió esto? Una de las razones por las que Node.js es tan popular es precisamente por su arranque increíblemente rápido (entre otras cosas).
Ahora que Node está funcionando, podemos definir nuestra aplicación Javascript línea por línea. Cada entrada es procesada y almacenada en la memoria. Aquí un pequeño ejemplo.
(Hit enter after every line end)
const greet = (name) => console.log("Hello, " + name);
greet("Tom"); let x = 10; x = x + 5;
(enter the following line to terminate node)
.exit
Ahora todo está bien y elegante, pero escribir aplicaciones más grandes requiere que primero las redactemos en archivos antes de enviarlas a Node. ¡Siguiente capítulo, por favor!
Entrada a través de archivos
Para este ejemplo, necesita un editor de texto. Básicamente, puede usar cualquier programa que pueda manipular texto (como TextEdit en macOS o Editor en Windows). Recomiendo el VS Code de código abierto de Microsoft, pero puede elegir el que mejor se adapte a su ergonomía.
Para proporcionar un archivo como entrada, solo tendremos que crear uno. Simplemente cree un archivo de texto sin formato con el sufijo 'js' en su nombre. Nombraremos nuestro archivo app.js. Ahora abra el símbolo del sistema de su elección (el que se usó en nuestro primer ejemplo). Asegúrese de abrirlo desde el directorio donde se guarda el archivo, eso es importante.
Si está usando VS Code, puede usar su símbolo del sistema incorporado, simplemente haga clic con el botón derecho en la vista del Explorador y llame a "Abrir en código" (en Windows) o arrastre y suelte el directorio que contiene el archivo en el icono de VS Code en su Dock (macOS). Luego puede abrir su terminal como se describe aquí.
Cuando el terminal esté listo, simplemente escriba el siguiente comando.
node app.js
Como ves, han pasado algunas cosas:
- Nodo iniciado directamente, sin entrada de usuario disponible
- Node ejecutó todo el archivo de arriba a abajo hasta que llegó a su fin
- El propio nodo terminó, ya que el final del archivo también marcó el final de su proceso
Y para una introducción básica a Node.js, ¡eso es todo! Una vez que haya descargado Node y haya experimentado por primera vez el uso del símbolo del sistema para iniciar su propia aplicación de Javascript, ya sea línea por línea o desde un archivo, ¡usted es oficialmente un desarrollador de Javascript! ¡Bienvenido al club!
Ahora lo guiaré a través del concepto central de NPM. Después del próximo capítulo, veremos rápidamente la conexión entre Node.js, NPM y el desarrollo web. Si desea obtener más información sobre Node.js, puede consultar nuestras historias sobre Javascript, cadenas de herramientas y todo lo relacionado con la codificación aquí. También he vinculado algunos recursos útiles al final de este artículo para obtener aún más cosas para aprender.
¡Muy bien, vamos a mover uno!
NPM, el administrador de paquetes de nodos
Como has visto, no es tan difícil administrar tu propio código. La aplicación se puede almacenar en un archivo, los cambios que aplique solo permanecerán. Pero, ¿qué sucede si desea utilizar el código de otra persona, por ejemplo, una biblioteca criptográfica o de manipulación de imágenes? De alguna manera, debe poner ese código junto al suyo, hacerlo utilizable para su aplicación y mantener todo manejable.
Un enfoque ingenuo sería simplemente descargar código externo directamente desde la fuente, p. Github y copie la biblioteca, archivo por archivo, en su propio proyecto. Pero eso lleva a algunos problemas:
- ¿Cuál es la mejor forma de actualizar este código externo? Copiar a mano no es la mejor solución.
- ¿Cómo realiza un seguimiento de todo el código que es externo?
- ¿Qué sucede si este código externo se basa en bibliotecas que no están instaladas en su proyecto?
NPM, un administrador de paquetes para Node.js, aborda todos estos desafíos. El trabajo de un administrador de paquetes básicamente es brindarle una solución sólida sobre cómo agregar, realizar un seguimiento y eliminar código externo, también conocido como dependencias. Estos son algunos ejemplos de NPM en acción.
npm install serve-static npm remove serve-static
Naturalmente, este administrador necesita algunos archivos especiales para realizar un seguimiento de todas las dependencias de su proyecto. Es por eso que las aplicaciones que usan NPM tienen al menos dos archivos: package.json y package-lock.json. Puede llamar al siguiente comando para crear rápidamente un nuevo paquete NPM.
npm init -y
Nota: como vimos en la primera parte de este artículo, no se necesita NPM para usar Node.js o Javascript. Su objetivo es administrar sus dependencias, ni más ni menos. A través de NPM, puede descargar el código que se publica en npmjs.com. Todos estos módulos externos se almacenan en su proyecto en un directorio especial llamado node_modules. Prácticamente nunca tendrá que modificar este directorio, ya que NPM lo administra en su totalidad.
El paquete.json le brinda información sobre las dependencias que usa actualmente en el proyecto. package-lock.json es un archivo especial que almacena algunos metadatos sobre mutaciones relacionadas con su archivo package.json o el directorio node_modules y puede ignorarse por ahora.
Creo que concluiré mi descripción del concepto central de NPM, qué hace y qué archivos/directorios genera automáticamente. Más información está vinculada al final del artículo.
Arco a desarrollo web
Bien, ahora conoce los fundamentos de Node.js y NPM. Pero, ¿por qué diablos es necesario aprender todo esto si solo quieres comenzar a crear tu propio sitio web moderno?
Como acabamos de ver, NPM nos permite descargar código de una gran colección de bibliotecas (la más grande que existe, para ser precisos). Para el desarrollo web, necesitará un servidor que pueda alojar (es decir, proporcionar) su aplicación web. Hay muchos servicios disponibles en los que puede cargar su proyecto de sitio web y utilizar una infraestructura existente, incluidos servidores, para que el sitio web esté disponible en la web.
Y para el desarrollo local, también se requiere un servidor para cargar sus archivos locales y hacerlos disponibles solo para usted, en su dispositivo, durante el desarrollo. Gracias a Node.js, puede hacer eso: hacer que su sitio web esté disponible localmente a través de un llamado host local. Node.js tiene las herramientas integradas necesarias para iniciar un servidor local, pero a través de NPM, su aplicación puede enriquecerse con componentes probados en batalla que pueden ayudarlo a crear servicios muy grandes en un corto período de tiempo.
Por supuesto, eso es solo el comienzo: NPM aloja mucho código para crear aplicaciones web modernas (conocidas como PWA, "aplicación web progresiva"), así como servidores complejos. Pero para una primera introducción, creo que la explicación debería estar bien.
Espero poder ayudarlo a familiarizarse con Node.js y NPM. Los primeros pasos son siempre los más difíciles, pero los primeros días de desarrollo y (mucho) aprendizaje serán recompensados con la expansión de sus habilidades hacia el desarrollo de aplicaciones web modernas, lo que le permitirá construir lo que quiera.