No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

4D
1H
44M
14S

Eliminaci贸n de dependencias y Package lock

11/15
Recursos

Conocer c贸mo eliminar dependencias, tambi茅n es importante para mantener tus proyectos sin paquetes que no aporten la soluci贸n a tu problema, que ya no sean actualizados, o que exista una mejor implementaci贸n.

C贸mo eliminar paquetes

Existen dos formas de eliminar paquetes:

  • Eliminando el paquete con el siguiente comando: bash $ npm uninstall <paquete>
  • Eliminarlo manualmente del archivo package.json. Al eliminar un paquete de manera manual, es necesario actualizar el directorio de node_modules.

C贸mo actualizar node_modules

Actualizar el directorio node_modules sirve para limpiar las dependencias que previamente estaban en el proyecto. Tambi茅n cuando existe alg煤n archivo corrupto o una mala instalaci贸n.

Por lo tanto, deber谩s eliminar el directorio de node_modules y despu茅s ejecutar el comando npm install para instalar correctamente los paquetes. En ciertas situaciones, tambi茅n es necesario eliminar el archivo package-lock.json.

Puedes utilizar el siguiente comando de NPM para evitar escribir demasiado cada vez que lo necesites.

json // package.json { "scripts": { "phoenix": "rm -f package-lock.json && rm -rf ./node_modules && npm i --no-fund --no-audit" } }

Mostrar los pasos ejecutados por un comando de NPM

Para identificar el error que puede existir en tu proyecto, es necesario analizar cada paso que ejecuta un comando, para saber en qu茅 punto espec铆fico ocurre el problema.

El flag --dd en un comando de NPM, te mostrar谩 de manera detallada cada paso ejecutado. De esta manera podr谩s observar si existe un error para solucionarlo.

bash $ npm [comando] --dd

Otra forma, es ejecutar el comando de NPM. Si existe un error, la terminal te mostrar谩 los diferentes errores que encontr贸. Al final de este resumen, existir谩 una ruta con los detalles del error, puedes abrir tal archivo para observar los pasos que ejecut贸.

Errores en comandos de NPM

Qu茅 es el archivo package-lock.json

El archivo package-lock.json describe todo el 谩rbol de dependencias de cada paquete instalado.

Cuando alguien hace fork de un repositorio no tiene el directorio node_modules por el archivo .gitignore. Mediante el comando npm install, instalar谩n las dependencias indicadas en el package.json con la versi贸n indicada. Tambi茅n, se instalar谩n las sub-dependencias indicadas en package-lock.json con la versi贸n indicada.

Esto es importante para tener instaladas siempre la versi贸n adecuada del paquete a utilizar en el proyecto.

Contribuci贸n creada por Andr茅s Guano (Platzi Contributor).

Aportes 22

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Resumen

Para eliminar una dependencia Ejemplo:

npm unistall webpack-dev-server

Otra forma es ir al archivo package.json y eliminar del listado de dependencia, dependencias de desarrollo o dependencias opcionales; una vez eliminado de la lista ejecutamos

rm -rf node_modules/
npm install

Para compilar el proyecto usamos

npm run build

Para compilar el proyecto y obtener mas informacion usamos


npm run build --dd

Para ver librerias deprecadas

npm ci

En el contexto de la programaci贸n es com煤n encontrarse con c贸digo al que se denomina deprecated. Basicamente el autor esta diciendo:

Esto que te ofrezco sigue funcionando, pero yo ya no me responsabilizo de que siga haci茅ndolo en un futuro, as铆 que 煤salo bajo tu propia responsabilidad (y no llores si deja de funcionar).

Eliminar archivos/directorios mediante la terminal.
POWERSHELL

  • rm or Remove-Item comando para eliminar 铆tem.
  • -r recursividad.
  • -fo or -Force forzar.
rm [path] -r -fo

UNIX

  • rm comando para eliminar 铆tem.
  • -r recursividad.
  • -f forzar.
rm -rf [path]
  • Documentaci贸n 鈫 rm

Eliminaci贸n de dependencias y Package Lock

C贸mo puedo eliminar una dependencia previamente instalada:

  • npm uninstall nombre-dependencia Elimina todo lo necesario que tiene esta dependencia.

Tambi茅n podemos ir a nuestro proyecto en VSC y eliminarla dentro del listado de package.json, posterior a eliminarlo, lo que haremos ser谩 eliminar todas las dependencias y volver a instalar todas las que est谩n en el package.json con los siguientes comandos:

  • rm -rf node_modules/ y luego >npm install

  • npm run build Para poder preparar nuestro proyecto y subirlo a producci贸n, crea una carpeta bin

  • npm run build 鈥-dd activa el comando con m谩s detalle e informaci贸n de los archivos que cre贸.

  • npm ci mostrar谩 informaci贸n como librer铆as deprecadas y paquetes que tenemos instalados en el proyecto, as铆 como sincronizar el package.json con el package.lock.json

Package.lock.json

package-lock.json sencillamente evita este comportamiento general de actualizar versiones minor o fix de modo que cuando alguien clona nuestro repositorio y ejecuta npm install en su equipo, npm examinar谩 package-lock.json e instalar谩 la versi贸n exacta de los paquete que nosotros hab铆amos instalado, ignorando as铆 los ^ y ~ de package.json.

  • Contiene toda la informaci贸n necesaria de cada uno de los elementos del proyecto, dependencias, dependencias de desarrollo, etc. Puede ser r谩pido para identificar los elementos que requiere e instalarlos. (ideal no tocar)

npm ci: tambi茅n llamado npm clean install. Este comando es similar al comando npm install. Con la diferencia que est谩 pensado para ser utilizado en ambientes automatizados.

Por ejemplo. Plataforma de pruebas, integraci贸n continua o cualquier otra situaci贸n que se requiera realizar una instalaci贸n limpia de las dependencias.

Las principales diferencias entre install y ci se listan aqu铆

鈾伙笍Eliminaci贸n de dependencias y Package lock馃攼
* Si en algun momento necesitas borrar una dependecia esto se puede logra de las siguientes maneras:

鈾伙笍 npm uninstall babel-eslint --> *babel-eslint* es solo un paquete de ejemplo, este comando borra la dependecia junto con todo su arbol de sub-dependencias

鈽狅笍 Borrar las dependencias desde el archivo de 馃摝package.json馃摝 posterior a esto es 
鈿狅笍IMPORTANTE鈿狅笍 borrar la carpeta node_modules con rm -r node_modules y hacer una reinstalacion limpia via "npm install"

Este proceso es necesario cuando se le esta haciendo una "limpia al proyecto" xd para posteriomente hacerle un REFACTOR tambien suele suceder cuando se trabaja con proyectos de prueba 

* npm run build --> Este comando prepara el proyecto para produccion

* npm run build --dd  --> Activa el modo Verbose, nos muestra una informacion mas robusta de lo que esta haciendo o de lo que ejecutarse el comando a la hora de ejecutar el build, asi en dado caso que el proyecto se rompa o una dependencia este mal instala da con esta opcion es mas facil identificar el problema.

*npm ci  => Muestra mensajes como librerias deprecadas o que dejaran de tener soporte, tambien sincroniza 馃摝package.json馃摝 con el 馃摝package-lock.json馃攼

驴Que es el 馃摝package-lock.json馃攼?
Este archivo contiene toda la informacion necesaria de cada uno de lo elementos del proyecto, en palabras mas sencillas el 馃摝package-lock.json馃攼 tiene todo el arbol馃尦 de dependencias y SUBdependencias que el proyecto tiene, este archivo toma mas relevancia cuando el proyecto se tiene que compilar en la nube o en un servevidor externo 

Agradezco el curso, pero algo para a帽adir: La clase anterior y esta vienen cargadas de mucha informaci贸n importante y que posiblemente no se entiende con solo ver una vez 鈥 por que no hay nada en la secci贸n de recursos como un resumen o lecturas para complementar?

鈥渘pm ci鈥 es una forma segura de instalar dependencias de un proyecto en entornos de producci贸n, ya que garantiza que se est谩n utilizando las versiones espec铆ficas de las dependencias especificadas en el archivo package.json y no permite que se realice ninguna acci贸n adicional. Es recomendable utilizarlo en entornos de integraci贸n continua (CI) y en producci贸n.

Yo suelo hacer:

rm -rf  /node_modules package-lock.json

A mi no me deja eliminarlo, me sale este error que no se c贸mo solucionar![](

Para eliminar la carpeta de node_modules del mismo proyecto o para eliminar estas carpetas de todo nuestro equipo existe este comando:

npx npkill

node modules puede convertirse en una carpeta muy pesada y especialmente en windows dar algunos dolores de cabeza al eliminarla, asi que desde la consola se puede usar este comando para hacerlo mucho mas facil

npx npkill

鈥淐ompilar un proyecto鈥 significa crear una versi贸n optimizada de su c贸digo fuente para su distribuci贸n o producci贸n. Espec铆ficamente, cuando se habla de 鈥渘pm run build鈥 en el contexto de un proyecto de JavaScript, se refiere a ejecutar un script de construcci贸n que combina y minifica los archivos del proyecto, convirti茅ndolos en una versi贸n lista para producci贸n. Esto puede incluir acciones como la eliminaci贸n de comentarios y espacios en blanco, la compresi贸n de im谩genes y la transpilaci贸n de c贸digo moderno a una versi贸n compatible con navegadores antiguos.

Apunte en Notion

Ac谩 les dejo un resumen del curso, igual les puede servir.

Steps to create and publish a library in NPM

Hay varias formas de eliminar dependencias de npm en un proyecto:

Utilizando el comando npm uninstall seguido del nombre de la dependencia que desea eliminar. Por ejemplo, npm uninstall lodash eliminar铆a la dependencia de lodash.

Puedes utilizar el comando npm prune para eliminar las dependencias que no se est谩n utilizando en tu proyecto.

Utilizando la opci贸n --save o --save-dev en el comando npm uninstall puedes eliminar la dependencia tanto del archivo package.json como del package-lock.json. Por ejemplo npm uninstall lodash --save.

Tambi茅n puedes editar manualmente el archivo package.json y eliminar la dependencia de la secci贸n 鈥渄ependencias鈥 o 鈥渄evDependencies鈥. Luego ejecutar npm install para actualizar el package-lock.json

Es importante mencionar que antes de eliminar cualquier dependencia debes asegurarte de que no afecte al funcionamiento del proyecto.

  • Package lock

    El archivo package-lock.json es un archivo generado autom谩ticamente por npm (Node Package Manager) que contiene informaci贸n sobre las dependencias de un proyecto y las versiones espec铆ficas de las mismas que se est谩n utilizando. Este archivo se utiliza para garantizar que todos los desarrolladores en un equipo, as铆 como todas las instalaciones del proyecto, est茅n utilizando las mismas versiones de las dependencias.

    Cuando se ejecuta npm install, npm genera autom谩ticamente un archivo package-lock.json que contiene informaci贸n detallada sobre todas las dependencias y sus versiones, incluyendo las dependencias transitorias. Al utilizar npm install en un proyecto con un archivo package-lock.json, npm utilizar谩 las versiones espec铆ficas de las dependencias que se encuentran en el archivo package-lock.json en lugar de buscar versiones m谩s recientes.

    De esta manera, package-lock garantiza que siempre se est谩 utilizando la misma versi贸n de las dependencias. Esto es especialmente 煤til en entornos de producci贸n, donde se desea evitar cualquier cambio sorpresa en las dependencias que puedan afectar el funcionamiento del proyecto.

Este flag comando del modo verbose permite ver todo el output en la terminal.

--dd
npm outdated --depth=3

Este comando te muestra tus dependencias junto a las versiones actuales, ultimas versiones, y la localizaci贸n de la carpeta

Cuando se habla de refactorar o refactorizar nuestro c贸digo habla de re escribir nuestro c贸digo o actualizar nuestras dependencias de manera que el c贸digo sea m谩s simple, legible, 贸ptimo.

NO CONFUNDIR este proceso con correcci贸n de errores, pues la refactorizaci贸n no lo contempla, m谩s bien contempla si ser谩 m谩s f谩cil resolver errores de tu c贸digo despu茅s de refactorizarlo.

para eliminar un paquete:

npm uninstall nombrePaquete

que significa npm ci?

Con este comando se prepara una compilaci贸n para producci贸n, si queremos m谩s informaci贸n del proceso pasamos la bandera --dd para activar el modo verbose
npm run build --dd

Con este comando podemos ver mensajes como librer铆as deprecadas o descontinuadas que no podr谩n ser actualizadas.
npm ci

El archivo package-lock.json muestra una estructura tipo historial de todos los paquetes y dependencias incluyendo sus ramas de cada uno.