curso-gestion

1.0.0 • Public • Published

Gestion de Paqueres con NPM

Lineamientos para la gestión de paqueteria en NPM

Que es NPM?

Es el acronimo de "Node Pakage Manager" y es el gestor de libreria Javascript mas grande que existe.

Nos brinda informcion sobre las versieones, mnetenimento, problemas comunes, estado actual de la libre y mucha iformacion mas.

Siempre es recomendable revisar la informacin de una libreria en NPM para conocer su estado actual

Instalar NPM

Para instalar NPM se debe descargar la version LTS (acronimo de "Long Term Support") de NODE, el cual es un entorno para a ejecucion de JavaScript en el cual se incluye NPM.

La descarga de node se puede realizar desde el siguiente link:

https://nodejs.org/es/

Configurcion inicial

Al tener instlado NPM se puede efectur la configurcio global de las crecenciales de autor que seran utilizadas para la creacion de los futuros proyectos mediante los siguientes comantos:

> npm set init.author.email "example-user@example.com"
> npm set init.author.name "example_user"
> npm set init.license "MIT"

Iniciar un proyecto

Siempre que se inicie un nuevo desarollo es recomendable generar un proyecto, de esta forma se peduran las configuraciones, archivos de dependencias y librerias que informan a otros desarrolladores de lo que se ha trabajado.

Estas configuraciones se veran reflejadas en el archivo package.json que se creara luego de la ejecuion del comando.

Para generar un proyecto con NPM se utiliza el siguiente comando:

npm init

Adicional generar un proyecto de forma rapida de puede usar la bandera "-y", esto permitira la creacion del proyecto utilizando los valores por defecto configurdos previamente (autor, email, licencia) un ejemplo del comando se muestra a continuacion:

npm init -y

Instalacion de paquetes

Al instalr un paquete o libreria usando NPM permite descargar dicha libreria desde los respositorios de NPM hasta de nuesto entorno local, eso se reliza mediante el siguiente comando:

npm install {pk-name}

Sin embargo se debe conciderar que las instalaciones pueden incluir algunas banderas como son las siguientes:

  • --save Permite especificar que el parquete que se esta instalando es necesario para ambiente productivo del proyecto y debe estar presente para el correcto funcionamiento del mismo

  • --sabe-dev Permite especificar que el parquete que se esta instalando es necesario para ambiente de desarrollo. esto tampbien puede ser especificdo por la bandera aberbiada -D

  • -g Permite especificas que el paquete se instlar de manera global para todos los proyectos de la maquina local, en caso de no especificar esta bandera la instalacion se realizara en un costexto local solo para el proyecto actual.

  • -f Permite forzar la instalacion de un paquete

Para revisar los pauetes intaladod de forma global podemos usar el siguiente comando (se utiliza "depth 0" para limitar el en el arbol de dependencia que sera motrado)

npm list -g --depth 0

Tmbien es posible simular la instalacion de un paquete (sin realmente instalar nada en computador) mediante el siguiente comando:

npm install {pk-name} --dry-run

En caso de ser necesario se puede efectuar la instalacion de una version especifica del paquete usando la siguiente estrctura de la sentencia:

npm install {pk-name}@{specific vercion}

Ejemplo:

npm install json-server@0.15.0

Ademas se destaca que todos los paquetes instalados o cambios relaizados se veran reflejados en el archivo package.json y en caso que el proyecto fuera migrado a otro computador se pueden volver a instalr todas la dependiencias indicadas en este archivo mediante el siguiente comando:

npm install

Finalmente luego de realizada la instalacion de los pquetes tambien es necesario destacar que si se observn los archivos del proyecto se puede constarar que se ha creado la carpeta "node_modules" dentro de la ruta donde se ejecdeuto el comando, en esta carpeta es donde se ubicara el codigo de todos los paquese que se vayan instalando.

Actualizacion de paquetes

Revisar que paquetes disponen de nuevas versiones

npm outdate

Para ver un output más detallado

npm outdate --dd

Actualizar los paquetes que no están en la ultima versión

npm update

Actualizar un paquete especifico

npm install json-server@latest

Eliminar paquetes

Eliminar un paquete de node_modules y del archivo package.json

npm uninstall json-server

Desinstalar un paquete de todo node_modules pero no del archivo package.json

npm uninstall webpack --no-save

Versionado de elementos

Estandar de versionado

Si se usa el ^ como simbolo antes de las versiones se asegura que la libreria se actualizara solo cambio menores y fix

Si se usa el simbolo ~ antes de las versiones se asegura que la libreria se actulizara solo los fix

Si no se pone ningun simbolo antes de las versiones se asegura que se mantendra la misma version y nunca se actualizara

image

Scripts

Los scripts NPM: Son comandos que podemos establecer para poder ejecutar desde la consola. Estos nos van a dar una serie de salidas según sea el caso.

Podemos crear la cantidad de scripts que necesitemos. Estos scripts van a poder correr de forma nativa dentro de nuestra terminal.

Eliminacion de cache

Usar bandera --dd para poder ver detalles sobre todo cuando ocurren errores en compilacion

Para eliminar cache de compilaciones pasadas o instalaciones pasadas

npm cache clean --force

Verificar el cache de NPM

npm cache verify

Seguridad

Revisar librerias con problemas se seguridad

npm audit

Obtener el analisis de vulnerabilidades en formato JSON

npm audit --json

Arreglas todo el conjunto de vulnerabilidades

npm audit fix

herramienta que garantiza que estemos siempre actualizados con nuestras dependencias del proyecto y es snyk.io

Crear paquetes de NPM y publicarlo

Creacion del Paquete

Para la creacion del paquete debemos ejecutar el siguiente flujo:

  1. Se crea el archivo index.js en la carpeta src, con el siguiente codigo:
// Se declara el arreglo
const messages = [
    "David",
    "Diana",
    "Ana Maria",
    "Isabela",
    "Antonio",
    "Norma"
]

//Crear función para enviar aleatoriamente  los nombres del arreglo
const randomMsg = () => {
    const message = messages[Math.floor(Math.random()*messages.length)]
    console.log(message)
}

// Exportar como un módulo

module.exports = { randomMsg }
  1. Se debe crear una carpeta bin donde se crea ele archivo global.js (Configuración que se necesita)
#!/usr/bin/env node
// se va ejecutar dentro de bash

//Variable que llama la funcion que exportamos
let random = require('../src/index.js')

//Ejecuto la funcion
random.randomMsg()
  1. Modificar el package.json y coloco la configuración de bin que se necesite
  "bin": {
    "random-msg": "./bin/global.js"
  },
  "preferGlobal": true

Validacion de paquete

Para validar se puede instalar localmente con el siguiente comando:

npm link

Alternativamente si se realizan cambios en el paquete, este tambien se puede instalar usando la ruta disica del archivo mediante el siguiente comando (depende de cada ruta donde se tenga el proyecto):

npm install -g ~/Estudio/GestionDeDependenciasYPaquetesConNPM/random-messages/

Para ejecutar el paquete se usa el siguiente comando en terminal (depende del nombre que le fue asigndo al paquete):

random-msg

Publicar paquete en NPM

Para publicar es necesario contar con una cuenta en NPM, esta cuenta puede ser creada desde el siguiente link:

https://www.npmjs.com/signup

Luego de creada la cuenta se deben seguir los siguientes pasos para publicar el paquete:

  1. Login en NPM mediante el siguiente comando:
npm login

Readme

Keywords

Package Sidebar

Install

npm i curso-gestion

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

9.49 kB

Total Files

4

Last publish

Collaborators

  • victor0402m