Publicar un módulo de Node.js en NPM

P

Introducción

NPM son las siglas de Node Package Manager y se refiere al repositorio de proyectos en línea o la herramienta de interfaz de línea de comandos (CLI) que se utiliza para interactuar con el repositorio en línea.

Actualmente, NPM es el registro de software más grande del mundo con más de 1,4 millones de paquetes de códigos. Por ejemplo, si desea utilizar Node.js para enviar correos electrónicos, puede hacer una búsqueda rápida en su repositorio y encontrar un módulo como Nodemailer, lo que puede ahorrarle mucho tiempo.

Es posible que desee compartir una herramienta que ha creado con la comunidad, que agiliza algunas de las tareas estándar. En este artículo, veremos cómo publicar un módulo Node.js en NPM.

Introducción a NPM

Para publicar un módulo en NPM, necesitamos tener una cuenta de NPM. Si no tiene uno, puede crearlo aquí.

Cuando instala Node.js, el npm La herramienta también se instala automáticamente.

Para comprobar si npm se ha instalado correctamente, puede comprobar cuál es la versión instalada actualmente ejecutando:

$ npm -v

Una vez comprobado que de hecho tenemos npm instalado, podemos iniciar sesión:

$ npm login

La herramienta nos pedirá nuestra identificación, correo electrónico y contraseña creados al registrarse.

Nota: No necesita tener una cuenta para usar NPM, pero para publicar un módulo, necesitará una, ya que está vinculado a usted como autor.

Crear un paquete

Creemos un directorio para nuestro proyecto y pasemos a él:

$ mkdir publish-to-npm
$ cd publish-to-npm

A continuación, inicializaremos el proyecto:

$ npm init 

A continuación, el comando le presentará varias preguntas que, una vez completadas, package.json archivo:

{
  "name": "publish-to-npm",
  "version": "1.0.0",
  "description": ""Sample module for publishing"",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "[email protected]",
  "license": "ISC"
}

El principal punto de entrada, por defecto, es el index.js, por lo que queremos crear ese archivo y agregarle algo.

Si usaste el -y bandera junto a la init comando, estos se habrían establecido en sus valores predeterminados.

Agregar dependencias

Agreguemos un código a nuestro index.js y agregue una dependencia, como otro módulo NPM para que lo utilice.

Primero, instalaremos una dependencia:

$ npm install node-fetch --save

Luego, lo importaremos a nuestro index.js archivo y agregue algo de lógica:

const fetch = require('node-fetch');

fetch('https://google.com')
    .then(res => res.text())
    .then(text => console.log(text))

Para verificar que esto está funcionando, podemos ejecutar:

$ node index.js

Y la salida es:

<!doctype html>
<html itemscope="" itemtype="http://schema.org/WebPage" lang="en-RS">
    <head>
        <meta charset="UTF-8">
        <meta content="origin" name="referrer">
        <!-- Rest of the page -->

Al comprobar el package.json archivar ahora, podemos ver node-fetch en nuestras dependencias:

{
  "name": "publish-to-npm",
  "version": "1.0.0",
  "description": ""Sample module for publishing"",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "[email protected]",
  "license": "ISC"
  "dependencies": {
    "node-fetch": "2.6.1"
  }
}

Nota: los --save bandera dice npm para actualizar el proyecto con el módulo como dependencia. Esto se ha eliminado en las versiones más recientes y el módulo se agregará a la lista de dependencias incluso sin la --save flag, sin embargo, para versiones anteriores, tendrá que usarlo.

Publicar en NPM

Ahora, podemos publicar el módulo en NPM a través del publish mando:

$ npm publish

Si obtiene algún error, lo más probable es que se deba a una colisión de nombres. es decir, ya existe un paquete con el mismo nombre en npm. Tenemos que cambiar el nombre de nuestro proyecto por algo único.

Puede buscar nombres de paquetes existentes a través de la barra de búsqueda en el página de inicio.

Después de crear un nombre único, debe cambiar el nombre del paquete en nuestro package.json archivo. En aras de la coherencia, también se recomienda actualizar el nombre de la carpeta para que coincida con el nombre del paquete.

Si no puede encontrar un nombre único, debe consultar paquetes con alcance. Básicamente, esto le brinda su propio espacio de nombres en NPM, por lo que puede nombrar sus paquetes como desee.

Por lo general, se recomienda que, si planea hacer público un módulo, evite usar el mismo nombre que otro paquete para evitar confusiones innecesarias. Sin embargo, es muy práctico para uso personal.

Esta es una de esas configuraciones que evitamos cambiar usando el -y bandera. Si quisiera crear un módulo con ámbito, necesitaría inicializar su proyecto con:

$ npm init [email protected]

Conclusión

En este artículo, escribimos una aplicación simple y la publicamos en NPM como un módulo público para que otros desarrolladores la utilicen cuando les convenga.

Es posible que en el futuro se encuentre con una situación en la que no encuentre un módulo disponible para resolver su problema particular. Puede escribir la solución usted mismo y cargarla en NPM, y tal vez ayudar a otros desarrolladores con el mismo problema.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad