¿Cómo crear y publicar un paquete de NPM?

En esta entrada veremos lo sencillo que es publicar un componente en el repositorio de NPM.

autor Rodríguez Patiño, Eduardo
publicado
visitas 325

En esta nueva lección vamos a ver los pasos necesarioss para publicar nuestro paquete de NPM.

¿Qué es NPM?

NPM es el gestor de paquetes de Node JS por el cual podemos instalar dependencias de terceros para cubrir las necesidades que demanda nuestro proyecto.

¿Cuándo publicar un paquete?

  • Cuando queremos crear algo público y que sea reutilizable por la comunidad.
  • Cuando queremos reutilizar cosas dentro de nuestro proyecto y equipo de desarrollo.

Autenticación en NPM

1. Crear una cuenta en NPM

Ir a https://www.npmjs.com/ y crear una cuenta.

2. Autenticarse

Necesitan autenticarse a través de su consola de comandos con su cuenta de NPM.

Para esto, escribimos el siguiente comando

npm login

Posterior a esto, ingresamos nuestras credenciales y si todo va bien, deberíamos ver un mensaje que estamos autenticados.

Publicación

Vamos a crear un proyecto simple, entran a la consola de comandos y ejecutan y hagamos paso por paso.

npm init

Nombre del paquete

Lo primero que nos va a pedir es definir el nombre del paquete, yo recomiendo usar la siguiente nomenclatura.

@provider/package_name

Un ejemplo sería @kodoti/my_first_npm_package, donde el inicio hace referencia al proveedor del paquete y después del "/", vendría el nombre del paquete.

Version

Este apartado es muy importante, porque a partir de aquí cada cambio que hagamos vamos a tener que actualizar este campo. Vean el paquete como un repositorio y cada cambio genera una nueva versión, sino, los que usen versiones previas tendrían problemas al consumir su paquete porque posiblemente se cambio el comportamiento de su paquete.

Recomiendo leer esta entrada para entender como funciona el versionamiento

https://anexsoft.com/versionamiento-semantico-npm

en nuestro ejemplo voy a poner la versión 1.0.0. De aquí en adelante, cada cambio que hagamos tendremos que actualizar el paquete a 1.0.1 o a como vaya el orden semántico de sus actualizaciones.

Completen los demás parámetros

Los demás parámetros que exige el asistente podemos dar el valor por default. Si todo ha salido bien, deberíamos ver algo como esto.

{
  "name": "@kodoti/my_first_npm_package",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

index.js

Si analizan el package.json creado, el punto de entrada de nuestro paquete es el index.js. Entonces vamos a crear dicho archivo y codificar algo sin mayor complejidad.

class MyFirstPackagePublished {
    sayHello() {
        console.log('Hello !!!');
    }
}

module.exports = MyFirstPackagePublished;

Publicación

Antes de publicar el proyecto vamos a decirle a nuestro paquete que va a ser público ya que, los paquetes privados requieren un pago.

Agreguemos una configuración a las publicaciones de los paquetes dentro del package.json para decirle que el scope o acceso será público.

{
  "name": "@kodoti/my_first_npm_package",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",

  "publishConfig": {
    "access": "public"
  },

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

Ahora si hagamos la publicación

npm publish

Si todo salió bien, el resultado esperado sería el siguiente:

Instalar el paquete

Luego de seguir todos estos pasos solo nos queda probar nuestro paquete publicado, así que vamos a instalarlo.

npm install @kodoti/my_first_npm_package

Teniendo instalado el paquete ya podríamos llamar a nuestra clase creada.

const MyFirstPackagePublished = require("@kodoti/my_first_npm_package");

let myFirstPackagePublished = new MyFirstPackagePublished();

myFirstPackagePublished.sayHello();

Eso sería todo, ya luego veremos cosas más interesantes como ejecutar pruebas unitarias antes de publicar.

- Nuestros cursos -