NPM es un gestor de paquetes para NodeJS que, en general, viene incluido en el paquete de nodejs (según la distro/SO que usen).

Lo interesante de NPM está en la FACILIDAD, tanto de uso para instalar o gestionar un proyecto, como para la publicación de paquetes nuevos desarrollados por nosotros.

Asumiendo que los lectores de este post tienen ciertos conocimientos básicos sobre: NodeJS, npm y la terminal de cualquier *nix, paso a explicar:

Para iniciar proyecto (crear package.json con los datos principales), solo hace falta ejecutar:

npm init  

Y seguir el asistente que nos hace algunas preguntas.

Para poder publicar en el directorio de paquetes de npm hace falta tener un usuario, el cual podemos crear desde la página web https://npmjs.com/ o bien con el comando:

npm adduser  

En el caso de que ya tengamos usuario (o lo creamos vía web), solo hay que loguearse:

npm login  

Y seguir al asistente.

Una vez logueados, ya podemos empezar a trabajar con npm. Por ejemplo, para publicar un paquete por primera vez sólo hay que ejecutar:

npm publish  

Ahora, supongamos que hacemos modificaciones en el código, y consideramos que podemos sacar una nueva versión con ese código. Usando npm podemos manejar el versionado de una forma muy sencilla.

npm version [patch|minor|major]  

Usando el parámetro patch, incrementará en 1 el último valor de la versión (ej. de 1.0.5 a 1.0.6)

Usando el parámetro minor incrementará en 1 el penúltimo valor de la versión (ej. de 1.0.5 a 1.1)

Y usando el parámetro major incrementará en 1 el primer número de la versión (ej. de 1.1.0 a 2.0.0)

Al ejecutar el comando anterior con alguno de los 3 parámetros, lo que también nos hará automáticamente, es un TAG en el repositorio git donde estemos trabajando, es decir marcará la versión generada (yeaahh!)

Para pushear los tags a un repo git remoto solo hay que ejecutar:

git push --folow-tags  

Eso es todo lo básico para poder arrancar a publicar y versionar, así que basta de excusas y a compartir conocimiento.

:wq!