No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Versionado de paquetes y paquetes privados

14/15
Recursos

El versionado semántico consiste en la estructura que debemos seguir para colocar una versión a nuestro paquete.

Qué es el versionado semántico

El versionado semántico está conformado por tres valores:

  • Major: el valor que muestra la versión que contiene los cambios importantes del paquete
  • Minor: el valor que muestra la versión que contiene los cambios en funcionalidades, pero no representan un cambio significativo
  • Patch: el valor que muestra la versión que contiene cambios rápidos para solucionar problemas de seguridad o bugs

Versionado de paquetes en NPM

Símbolos ^ y ~ para actualizar las versiones minor y patch

Existen dos símbolos que acompañan al versionado sirven para actualizar las versiones minor y patch del paquete.

  • Caret (^): Permite actualizar las versiones minor y patch
  • Tilde (~): Permite actualizar las versiones patch

Por ejemplo, tenemos la versión 5.2.3:

  • Si tiene el carret ^5.2.3, actualizará la versión minor y patch, por lo que tendrás versiones como ^5.3.3, ^5.4.3, ^5.4.4, y así sucesivamente. Pero no versiones mayores a 6.0.0.
  • Si tiene la tilde ~5.2.3, actualizará la versión de patch, por lo que tendrás versiones como ~5.2.4, ~5.2.5, ~5.2.6, y así sucesivamente. Pero no versiones mayores a 5.3.0.

Buenas prácticas en el versionado de paquetes

Lo recomendable es eliminar estos símbolos y tener la versión exacta (sin símbolos) para evitar problemas de versionado, principalmente con paquetes que los mantienen pocas personas o no son fiables.

Debes manejar las actualizaciones cuando sea pertinente y asegurándote que no entrará en conflicto la nueva versión con la antigua.

Cómo realizar cambios a la versión de tu paquete de NPM

Si realizas cambios en tu código, tienes que cambiar la versión de tu paquete. Debes utilizar los siguientes comandos, según la versión que desees cambiar:

```bash

Aumenta una version path (1.0.0) -> (1.0.1)

$ npm version patch

Aumenta una version minor (1.0.0) -> (1.1.0)

$ npm version minor

Aumenta una version major (1.0.0) -> (2.0.0)

$ npm version major

Aumenta una version específica (1.0.0) -> (3.1.1)

$ npm version ```

Una vez actualizada la versión de tu paquete, puedes ejecutar nuevamente el comando npm publish para actualizarlo en los repositorios de NPM.

Paquetes privados

Para usar paquetes privados necesitas:

  • Una versión igual o superior a la 2.7.0 de NPM
  • Tener una cuenta de usuario u organización de pago

En un paquete privado de NPM, solo pueden participar el propietario y los colaboradores autorizados. De esta manera, puedes seguir construyendo el paquete con una combinación de código privado y dependencias públicas.

Actualizar tu paquete en NPM con buenas prácticas

Tu paquete debe contener toda la información posible para que el usuario puede instalarlo, utilizarlo y hasta colaborar para solucionar posibles bugs. Por ende, es necesario que tengas configurado, por lo menos, un archivo README.md y un repositorio remoto (GitHub, GitLab, etc.).

Una vez tengas estos requisitos, puedes actualizar tu paquete a una nueva versión, luego publícalo nuevamente.

Cómo crear un archivo README.md para tu paquete

Para crear un archivo README.md puedes utilizar esta estructura base y adecuarla a tu proyecto. Puedes mirar el código haciendo clic en el botón "Raw".

Contribución creada por Andrés Guano (Platzi Contributor).

Aportes 24

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

por ética moral no publiqué el paquete. XD

Si les da errores, puede ser porque no habían instalado previamente el comando con permisos de root, por ejemplo:

sudo npm install -g random-str-msg

Con eso debería resolver lo de instalar y ya al colocar el comando:

random-str-msg

deberían aparecerle las frases que al profe le aparecen en su consola.

Imagen de versionado semántico

👨‍💻 Comparto esta imagen sobre el versionado semántico.

Acá 👉 mi primer paquete publicado en el listado de npm 📦😀💻

Me gustó mucho este curso y la forma de explicar de gndx!!!

“Me gustaría ver tus paquetes”

Publiqué un paquete que retorta e imprime en consola un objeto con la siguiente estructuta:
{
Departamento:‘Amazonas’,
Capital:‘Leticia’
}
Esto de forma aleatoria con los 32, es el primero que publico 🙈.
npm i random-departmentsofcolombia
https://www.npmjs.com/package/random-departmentsofcolombia

Hace tiempo cree un router client-side para JavaScript vanilla con soporte para JS y TS, la cantidad máxima de descargas que alcanzó fueron 274 por semana.

El paquete se llama yourrouter y la documentación oficial está en inglés. Se los dejo aquí por si quieren echarle un ojo.

Cualquier aporte o bug lo pueden reportar para corregirlo:)

Si no les funciona el up main intenten con git push

Mi primer paquete NPM 📦

Construí un paquete que recibe un texto entre comillas despues del comando y lo regresa emarcado para darle énfasis

LINK 👉 frame-text

frame-text

█▀▀▀▀▀▀▀▀▀▀▀▀█
█ FRAME TEXT █
█▄▄▄▄▄▄▄▄▄▄▄▄█

This project frames the text to give it emphasis.

Install

npm install -g frame-text

Usage

frame-text "Hello"

=>

█▀▀▀▀▀▀▀█
█ Hello █
█▄▄▄▄▄▄▄█

Los paquetes son divertidos. Comandos importantes:

  • npm link
  • npm install -g /ruta/del/paquete
  • npm adduser
  • npm publish
  • npm version x.x.x

Los paquetes privados tienen costo.

En mi caso cree un paquete que permite crear cuentas de ethereum EIP55 compatibles, trabajado globalmente me las genera de forma aleatoria pero importando las funciones extras que cree me permiten importar desde la clave privada o generar wallets deterministicas usando un usuario y un password. Dejo para más adelante para implementar el bip39 y bip32. Acá les dejo el npm: https://www.npmjs.com/package/cryptocris_ethereum_wallet

Les recomiendo Verdaccio para crear sus paquetes privados de manera gratuita. Recién lo utilicé, es sencillo y poderoso 💪

Hola

Acá les dejo un package que permite convertir la collection de Postman a un archivo Markdown.

postman-to-markdown

Dejo mi paquete que esta diseñado para entregar citas de libros aleatoriamente.
https://www.npmjs.com/package/random-str-quote

Hice que ChatGPT me generara 500 frases aleatorias en la estructura que estaba en el condigo aquí el repo

https://github.com/lightningcode-d/random-str-msg-d

Descargen mi paquete de npm:

npm i randname-ag

El poder compartir paquetes que uno crea es algo genial, pero dentro de NPM existen muchos muy utiles para el desarrollo de cada dia.
Entre algunos de estos:

  • Cambio imagenes a Webp
  • Cambio de imagenes a Avif
    Entre otros, esto con ayuda de algo que se llama gulp

Aqui pueden visitar Mi paquete. Ha sido genial aprender como usar npm. La verdad lo venia usando pero como que adivinando, ahora tiene muchas más sentido cada cosa que hago con NPM 😄

Excelente clase!
Me siento que tengo el conocimiento de todo un profesional

Publiqué un paquete en el cual te genera frases inspiradoras con diferente color de fuente y diferente fondo cada que se ejecuta el comando.

Aquí la pagina del paquete en npmjs (https://www.npmjs.com/package/random-quote-colors)
Aquí el link del repositorio en Github (https://github.com/cristhian420/random-quote-colors)

Al momento de instalar el paquete de manera local con npm link, me genero un problema el cual no reconocía el script en la consola.

$ random-quote-colors
zsh: permission denied: random-quote-colors
$ sudo random-quote-colors
Password:
sudo: random-quote-colors: command not found

Usando el comando para desinstalar el paquete

$ npm uninstall random-quote-colors 

Simplemente me aparecía el proceso pero seguía apareciendo en la lista de paquetes instalados, por lo que elimine desde la carpeta

/usr/local/lib/node_modules

De esta manera pude reinstalar el paquete de manera local, correr las pruebas y publicarlo en npmjs.

Les dejo mi paquete hecho con frases motivacionales.

https://www.npmjs.com/package/random-show-msg