Crear un paquete para NPM

Clase 15 de 18Curso de Gestión de Dependencias y Paquetes con NPM

Resumen

Al crear un paquete para NPM, podrás compartir tu trabajo a varios desarrolladores y utilizar tu código mediante npm install. Te mostraré un ejemplo, un proyecto de mensajes aleatorios que estará instalado globalmente y se ejecutará mediante la terminal.

Proyecto de mensajes aleatorios

Crea el directorio del proyecto y el archivo package.json mediante npm init. Inicia un repositorio local de Git con git init. Al momento de publicar un paquete, el proyecto debe tener un nombre único, puedes agregar tu nombre de usuario para diferenciarlo, pero no agregues números, ya que NPM lo detecta como spam.

Dentro del proyecto crea la siguiente estructura de archivos:

  • Un directorio llamado src que contenga el archivo principal del proyecto index.js
  • Un directorio llamado bin que contenga un archivo ejecutable global.js
Directorio base

En el archivo index.js agrega el siguiente código, un array llamado messages que contiene cinco nombres y una función randomMsgque mostrará de manera aleatoria los elementos del array. Al final, exporta la función mediante module.exports.

const messages = ["Oscar", "Ana", "Nikolai", "Diego", "Laura"];

const randomMsg = () => {
  const message = messages[Math.floor(Math.random() * mesagges.length)];
  console.log(mesagge);
};

module.exports = { randomMsg };

En el archivo global.js agrega el siguiente código, en el que importamos el la función del archivo index.js y la ejecutamos.

#!/usr/bin/env node
let random = require('../src/index.js');

random.randomMsg();

⠀⠀
#!/usr/bin/env node es una instancia de una línea shebang, la primera línea en un archivo de texto plano ejecutable en plataformas similares a Unix que le dice al sistema: a qué intérprete debe pasar ese archivo para su ejecución, a través del comando línea siguiendo la magia #! prefijo.
⠀⠀
En el archivo package.json, agrega "bin" haciendo referencia a nuestro archivo global.js y "preferGlobal" en true (el signo + representa las líneas de código a añadir).

{
  "name": "random-mesagges-<tuUsuario>",
  "version": "1.0.0",
  "description": "Vamos a crear un paquete para NPM",
  "main": "src/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Tu Nombre <tunombre@gmail.com>",
  "license": "MIT",
+"bin": {
+  "random-msg": "./bin/global.js"
+ },
+ "preferGlobal": true
}

¡Listo! Ya tienes configurado el proyecto para publicarlo en NPM.

Contribución creada con aportes de: Andrés Guano y areyouivan.