Tutorial: cómo crear un módulo para NodeJS y publicarlo en NPM

Tutorial: cómo crear un módulo para NodeJS y publicarlo en NPM

Publicado en March 16, 2013 por Sergio Garcia Mondaray en Desarrollo Web, Programación, Tutoriales y guías

En este sencillo tutorial vamos a crear y publicar en NPM nuestro propio módulo de NodeJS. Como ya sabréis, NPM es un gestor de módulos de NodeJS que nos permite instalarlos de forma similar a como hacemos al utilizar repositorios. Pues bien, después de terminar este tutorial, cualquiera podrá utilizar nuestros módulos sin más que instalarlos con el siguiente comando:

npm install <nombre_de_nuestro_modulo>

Sencillo, ¿verdad? Muy bien, pues pongámonos manos a la obra.

  • Instalamos NodeJS y NPM (el gestor de módulos) si no lo tenemos ya instalado. En la última versión de Ubuntu podemos hacerlo a través de los repositorios. En otro caso lo podemos descargar desde la web oficial y compilarlo e instalarlo siguiendo las instrucciones del README.
  • En segundo lugar debemos crear un repositorio para el módulo. Recomiendo encarecidamente usar GitHub para ello. Tenemos que registarnos y seguir los pasos que nos indica la web para poner en marcha nuestro repositorio.
  • El contenido de nuestro repositorio (el conjunto de archivos que constituirá nuestro módulo) debe ser el siguiente:
    README.md	main.js		package.json	tests.js

    El archivo package.json contiene una descripción formal del paquete (aquí hay una buena explicación de cómo crear este archivo), importante para la instalación y el buen funcionamiento del mismo. Un contenido básico de ejemplo es el siguiente:

    {
    	"name": "stdio",
    	"version": "0.0.1",
    	"description": "...",
    	"main": "main.js",
    	"author": {
    		"name": "..."
    	},
    	"keywords": [ "...", "...", "...", ... ],
    	"engines": {
    		"node": "*"
    	},
    	"readmeFilename": "README.md"
    }

    Por otro lado, main.js contiene el paquete en sí, y tests.js los tests del mismo. README.md deberá contener las instrucciones de instalación y uso del paquete. Por supuesto a medida que nuestro paquete lo necesite, podrá contener más archivos, directorios y recursos, etc.

  • Una vez tengamos el repositorio actualizado ya podemos publicar el módulo en NPM por primera vez. Abrimos una consola, nos situamos en el directorio del módulo y ejecutamos lo siguiente:

    • # npm link

      Esto genera un directorio nuevo, llamado node_modules, en caso de que nuestro módulo tenga dependencias. Para evitar que este directorio se suba a nuestro repositorio deberemos añadir node_modules al archivo .gitignore.

    • $ npm adduser

      Nos permite crear o especificar, interactivamente, nuestro usuario de NPM.

    • $ npm publish

      Este comando publica nuestro módulo en NPM.

  • Cada vez que hagamos cambios deberemos actualizar el atributo “version” de nuestro package.json y actualizar el estado de nuestro repositorio. Por último subimos esa nueva versión a NPM, de nuevo con:
    $ npm publish

Espero que os resulte útil. Comprobaréis que es muy satisfactorio poner un módulo propio a disposición del público para que cualquier desarrollador pueda utilizarlo.