Contenido del curso
Módulos y gestión de paquetes
Módulos nativos en Node.js
- 8

CRUD de archivos con módulo fs
10:20 min - 9

Transcribir audio a texto con Whisper y Node.js
16:31 min - 10

Implementar transcriptAudio con Whisper en Node.js
06:28 min - 11

Console API en Node.js: métodos básicos
10:22 min - 12

Console.count y console.group en JavaScript
09:16 min - 13

Módulo OS de Node.js para monitoreo
04:57 min - 14

Crypto de Node.js: hash SHA-256 completo
05:41 min - 15

Módulo process de Node.js en detalle
17:04 min - 16

Timers en Node.js: setTimeout y setInterval
11:04 min - 17

Streams en Node.js para archivos grandes
10:47 min - 18

Manipulación de buffers binarios en Node.js
06:43 min
Servidores con Node.js
Cómo crear y probar un paquete npm local
Resumen
Crear tu propio paquete npm en Node.js es más sencillo de lo que parece, y aquí vas a construir uno desde cero llamado platzi-date. La meta: manejar fechas en dos formatos útiles, timestamp y long time, y dejarlo listo para probarlo localmente antes de publicarlo. Si estás aprendiendo Node.js y quieres entender el flujo real de empaquetar código reutilizable, este recorrido te va a servir.
¿Qué necesitas antes de crear un paquete npm?
Antes de escribir una sola línea de código, conviene preparar la estructura del proyecto en una carpeta independiente del resto de tus ejercicios.
Desde la terminal, crea la carpeta con mkdir platzi-date y entra en ella. Inicializa el control de versiones con git init y luego ejecuta npm init -y para generar un package.json con la configuración por defecto, que después modificarás según las necesidades del paquete [01:30].
¿Qué hace npm init -y? Crea automáticamente el archivo package.json con valores por defecto, sin preguntarte campo por campo. Es ideal para arrancar rápido y ajustar después.
Luego, dentro del editor de código, crea una carpeta src y dentro un archivo index.js. Ahí va a vivir el código fuente del paquete.
¿Cómo construir las funciones para timestamp y fecha larga?
El paquete expone dos funciones específicas, cada una con una responsabilidad clara.
La función getTimestamp
Esta función devuelve el timestamp actual usando Date.now(). Es directa: solo retorna el número de milisegundos desde el 1 de enero de 1970. Más adelante puedes formatearla según el caso de uso [02:45].
js function getTimestamp() { return Date.now(); }
La función getLongTime
Esta es más interesante porque acepta un parámetro locale con valor por defecto en español, lo que la hace flexible para distintos idiomas y regiones.
Dentro defines una constante options con la configuración del formato:
weekday: 'long'para el día de la semana completo.year: 'numeric'para el año en número.month: 'long'para el mes con nombre completo.day: 'numeric'para el día numérico.hour,minuteyseconden formatonumeric.timeZoneName: 'short'para mostrar la zona horaria abreviada.
Luego retornas new Date().toLocaleDateString(locale, options), que es el método nativo de JavaScript que aplica esa configuración al objeto Date [04:20].
Finalmente, expones ambas funciones con module.exports = { getTimestamp, getLongTime }.
¿Cómo configurar el package.json y el README?
Un paquete sin documentación clara y metadatos correctos no llega lejos. npm usa esta información para mostrarla en npmjs.org.
Crea un archivo README.md con el nombre del paquete, una descripción corta como una utilidad para manejar fechas en formato timestamp y long time, y un bloque de instalación en bash:
bash npm install platzi-date
En el package.json ajusta:
- El campo
mainpara que apunte asrc/index.js. - Las
keywordscon valores comodateynodejspara mejorar descubrimiento. - Tu nombre en
authorpara que puedan contactarte. - La
licensecomoMIT. - Una
descriptionunificada con la del README.
¿Para qué sirven las keywords en package.json? Ayudan a que tu paquete aparezca en búsquedas dentro del registro de npm. Son etiquetas que describen el propósito del paquete.
¿Cómo probar el paquete localmente sin publicarlo?
Aquí entra una de las herramientas más útiles del flujo de desarrollo en Node.js: npm link. Te permite usar tu paquete en otro proyecto como si ya estuviera publicado, pero apuntando a tu código local.
Desde la carpeta del paquete, ejecuta npm link. Esto crea un enlace simbólico en el sistema que registra tu paquete a nivel global [07:15].
Luego ve al proyecto donde quieres consumirlo y ejecuta npm link platzi-date. Eso conecta el paquete local con la carpeta node_modules de ese proyecto, sin necesidad de hacer npm install.
¿Qué es un enlace simbólico en npm link? Es una referencia que apunta desde node_modules a la carpeta real de tu paquete. Cualquier cambio que hagas en el código fuente se refleja al instante en el proyecto que lo consume.
Probando el paquete con un archivo de pruebas
Crea un archivo date.js en tu proyecto principal y trae el paquete con:
js const dateFormat = require('platzi-date');
console.log('timestamp:', dateFormat.getTimestamp()); console.log('fecha en español:', dateFormat.getLongTime()); console.log('fecha en inglés:', dateFormat.getLongTime('en-US'));
Al correr node date.js deberías ver el timestamp en milisegundos, la fecha en español como miércoles 26 de febrero, y la versión en inglés con el formato regional de Estados Unidos [09:40].
Este flujo de validación local es clave: te asegura que el paquete funciona antes de publicarlo y evita subir versiones rotas al registro público.
¿Ya pensaste en qué utilidad podrías empaquetar tú mismo? Cuéntame en los comentarios qué función repites en tus proyectos y que valdría la pena convertir en un paquete npm.