Instalando NodeJS

Creo que todos en algún momento de nuestra vida hemos sentido la frustración de encontrar lo que parecía ser un gran tutorial de [ingrese-nombre-de-tecnología], para encontrarnos con la realidad de que estaba incompleto, se saltaba pasos, o tomaba el punto de partida realmente muy alto.

Esta serie de publicaciones que estoy comenzando, realmente no esperan ser el mejor tutorial existente sobre NodeJS en español, sobre todo por que yo no soy un programador experto, ni nada que se le parezca. Por otro lado, en lo que si espero que se conviertan, es en una suerte de guía real y responsable, para cualquier persona que quieran adentrarse en el desarrollo web, con node como Back-End, tratando de abarcar todas las dudas que me surgieron en su momento a mi y que no tuve la suerte de encontrar en un mismo lugar, por lo tanto, lo que busco compartir, es exactamente eso.

Me tome estas primeras lineas, para contar, a quien sea que este leyendo esto, el contexto de mi situación. Actualmente trabajo todos los días con NodeJS en un emprendimiento personal que estoy llevando a cabo con amigos, Wildevs, una empresa de desarrollo propia.

No obstante, estoy lejos de utilizar de forma intensiva y profunda esta tecnología, y recién estoy empezando a profundizar de una manera seria en esta; por contrapartida, ya pase por los momentos en los que quise desistir y en los cuales realmente no entendía ni lograba encajar nada de nada de lo que leía, y sigo acá, lo cual en cierta forma, significa que logre superar dichos inconvenientes y empezar a entender Node.

Realmente tenes los conocimientos necesarios para comenzar un blog?

Realmente, no se cuales serian los conocimientos "necesarios" para poder comenzar este blog, ya hable sobre mis motivaciones para hacerlo, pero lo que si puedo decir a mi favor es que un poco mas que la persona que lee esto se, y eso, creo que es suficiente para poder comenzar a compartir eso poco que se y ayudar a la comunidad.

Instalar NodeJS

Yo utilizo un equipo Apple, por lo tanto todas mis pruebas están ejecutadas sobre macOS; no obstante, la única "diferencia" esta al momento de instalar Node, ya que este da soporte para Windows, macOS y Linux por igual.

Al finalizar este articulo vamos a tener un ambiente de trabajo listo para comenzar a desarrollar sobre NodeJS.

Necesitamos:

Primero hay que instalar Node, y con este automáticamente se instala npm.

Nos dirigimos a la pagina oficial del proyecto Node, y en la sección de descargas, obtenemos el instalador para nuestro SO. Para utilizar las ultimas features podemos optar por utilizar la version 7.X, o una version LTS (Long Term Support), como la 4.X o la 6.X (Esta ultima, la que utilizo en producción en mis desarrollos).
Iniciamos el instalador que descargamos (*.exe en Windows, *.pkg en macOS), y nos encontramos con la siguiente pantalla:

Acá, tan solo hay que seguir las instrucciones del instalador, aceptar la licencia y al finalizar tendremos node instalado en nuestra maquina.

Con esto tenemos instalado node y npm, genial... Y nvm?

Bueno, se instala siguiendo la guía que esta en su repositorio de GitHub.
Para el caso particular de macOS, se puede instalar directamente mediante homebrew, o lo que es lo mismo, el apt-get de macOS.

Node también se podría haber instalado con homebrew, vos fijate que te queda mas cómodo.

Bueno, todo listo. Hay que abrir una terminal (CMD en Windows), y teclear los siguientes comandos obteniendo la siguiente respuesta del bash, zsh, o interprete que estén utilizando:

Los números de versiones no coinciden con el que aparece en la imagen del instalador, ya que actualmente en mi maquina coexisten varias versiones de Node al mismo tiempo...

Para, como que coexisten muchas versiones de node juntas?

Yes, my friend.

NVM es un gestor de versiones de NodeJS, así como npm es un gestor de paquetes de NodeJS.

Y para que voy a querer tener mas de una version de Node?

Imagina que estas desarrollando una API RESTFul, esto es algo que necesita ser estable y tenés que confiar en que lo que usas no va a dejar de tener soporte... Bueno, usas las versiones LTS, versiones especialmente pensadas para producción.

Versiones? En plural?

Claro, quizá la app que estas desarrollando funciona solamente con la version de node LTS 4.X, pero a su vez estas desarrollando otra app que utiliza features de la 6.X, entonces con NVM podes ir cambiando a la version que necesites, en el momento que necesites.
Obvio, las versiones no LTS están buenas para poder probar lo que va a estar en las versiones LTS a futuro, pero que aun no son completamente estables, o que incluso podrían desaparecer dichas features y no aparecer en la LTS.
Utilizar una version NO-LTS (7.X) para una app que va a salir al mercado es no tener dos dedos de frente, salvo casos muy raros en donde necesites SI o SI alguna feature de la nueva version.

Bueno, genial... Y como uso NVM?

Sencillo, para instalar versiones de node, primero se deben poder ver todas las versiones de Node disponibles para instalar, esto se hace con el comando:

nvm ls-remote  

lo cual te devuelve la lista completa de versiones disponibles para instalar con el comando:

nvm install [node_version]  

para consultar las versiones de Node instaladas en tu sistema, bastaría con un simple:

nvm ls  

lo cual devolvería algo como esto:

finalmente, para elegir la version con la que se desea trabajar en el momento, el comando run es el que se debe utilizar:

nvm run [node_version]  

NVM tiene otros comandos para utilizar, la ayuda siempre es una buena idea de utilizar:

Genial, estamos en condiciones de utilizar distintas versiones de NodeJS a nuestro antojo y conocimiento.

Que hay con NPM?

Como bien podrás intuir, NPM significa "Node Package Manager", aunque supuestamente es un retroacrónimo recursivo para "npm is not an acronym", a mi me gusta pensar la segunda opción.

Si alguna vez se ha utilizar apt-get en linux, o brew en macOS, el uso de npm va a ser muy natural, por otro lado, en Windows no es común utilizar gestores de paquetes, aun que si existen, por ejemplo chocolatey. Sea como fuere, el uso de npm es muy sencillo y no voy a describir intensivamente todas sus opciones, ya que no es el objetivo de esta publicación. Pero, voy a describir lo mas básico de su uso:

Instalar paquetes

Para buscar paquetes, lo mas recomendable es hacerlo desde la pagina de npm, y luego instalarlos desde linea de comandos con el comando:

npm install [nombre_paquete]  

Ahora bien, el comando "install" de npm tiene algunas propiedades interesantes.

Se puede utilizar "i", en vez de "install", esto es un ahorro de tiempo muy grande para cuando se están instalando muchos paquetes todo el tiempo. Al comando install se le pueden adicionar banderas para indicar si la instalación va a ser global, local, de desarrollo o de producción. Estos aspectos los voy a ir describiendo a medida que vayamos utilizando npm, no tiene sentido explicarlo ahora para luego tener que volverlo a explicar.

Y con Node que hacemos?

Para terminar con esta entrada, vamos a probar Node. En una consola, ejecutar el comando node. Esto provocara que el prompt de la terminal cambie y entre al interprete de comandos de Node... Acá, es como tener la consola de Chrome, se puede ejecutar código JavaScript a voluntad:

Para salir, el típico Ctrl + C (dos veces).

Como se puede ver en la imagen de arriba, suma es una constante, y al tratar de cambiar, el interprete tira un error. Esta, es una feature del nuevo estándar ES6.

Con esto, tenemos un entorno listo y preparado para comenzar a desarrollar sobre NodeJS.

Fácil, no?

Show Comments

Get the latest posts delivered right to your inbox.