Creando una biblioteca front-end con Node.js: Some assembly required

Gustavo Leon
2 min readMay 8, 2015

Previamente había escrito sobre Browserify y cómo representa, valga el cliché, el futuro de la web; pero para hacer presente ese futuro necesitamos una base sobre la cual empezar a trabajar. Para quienes no están familiarizados con los módulos de Node.js, esta es una pequeña introducción al tema.

Creando un módulo Node.js

Si ya instalaste Node.js, debes tener el comando npm disponible en tu consola (o terminal, o prompt, como gustes llamarlo). Cada módulo de Node es una carpeta con un archivo JSON llamado package.json, el cual contiene toda la información necesaria del módulo: desde el nombre hasta el tipo de licencia a usar, el autor, o si tiene asociado algún repositorio de Git. Toda esta información va en package.json.

¿Y por qué mencioné el comando npm? El comando npm tiene a su vez otro comando llamado init, el cual te irá preguntando los datos que necesita para crear el archivo package.json.

Puedes probar creando un módulo de Node.js en esta consola (también puedes dejar los valor por defecto si no entiendes alguna de las preguntas):

Cuando ya tienes el archivo package.json, toca crear el código del módulo. Por lo general, el nombre de este nuevo archivo es el nombre del módulo, o, en su defecto, index.js.

En este caso mi módulo se llama from-query-string:

El formato de un módulo de Node.js (conocido como CommonJS) es bastante simple: Todo lo que se encuentre dentro del archivo es privado hacia fuera, excepto lo que es guardado en la propiedad module.exports:

Hasta aquí, ya creamos un módulo de Node.js, nada nuevo para quienes ya conocían algo de Node. Como pueden ver en la última consola, este módulo puede usarse dentro de la consola de Node (a la cual pueden acceder mediante el comando node).

Ya que tenemos la base con la cual trabajar nuestro módulo para front-end, necesitamos instalar el entorno necesario para un workflow de este tipo, que incluye 3 herramientas más: el ya mencionado Browserify, Gulp y Mocha. Después de todo, no solo de Browserify vive el front-end.

--

--

Gustavo Leon

Man out of time. Creador de gmaps.js, @appstaire, @cevichejs y @domscope. Cofundador de @CodePicnic.