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:
$ 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.
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.
$ 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ó.
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).
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).
Buenisimo!!!
Gracias, el profe menciona pero no explica que es eso, gracias por el aporte.
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
Muy bueno pero es uninstall no unistall xD
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
Documentación → Remove-Item
UNIX
rm→ comando para eliminar ítem.
-r→ recursividad.
-f→ forzar.
rm -rf [path]
Documentación → rm
thank you, no me reconocía rm -rf, probe con Remove-item y funcionó!
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)
Buen Aporte
"npm 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.
📛 Archivos del Proyecto 📛
Pasos 📌
• En la terminal estar dentro de la carpeta del proyecto react-base, queremos desinstalar un paquete, por ejemplo ejecutar:
npm uninstall webpack-dev-server
• A través del editor ++VS Code++, se puede eliminar la dependencia, al abrir el archivo package.json, se busca en la lista y simplemente se borra y se guarda el archivo. Seguidamente en la terminal se debe ejecutar:
rm -rf node_modules/
• Con esto se borró la carpeta node_modules, se puede verificar listando los archivos y carpetas con ls -l
• Se vuelve a instalar todas las dependencias del proyecto que vienen por defecto con:
npm install
• Por otro lado, para preparar un proyecto para producción, se ejecuta:
npm run build
• Para mostrar una información más robusta de lo que hace ese comando para producción, se activa el verbo verbose, se ejecuta:
npm run build –dd
• Para ver mensajes de algunas librerías aplicadas al proyecto, se ejecuta:
npm ci
• Para ver la historia completa de las dependencias y las ramas de las mismas, se abre en ++VS Code++ el archivo package-lock.json, éste no se modifica.
Siempre presente! muchas gracias!!
♻️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?
"Compilar 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 "npm 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.
Yo suelo hacer:
rm -rf /node_modules package-lock.json
Comparto mis apuntes
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
npm run build no me sirve
Me sale esto:
% npm run build
> react-base@1.0.0 build
> webpack --mode production
Error: error:0308010C:digital envelope routines::unsupported
at newHash(node:internal/crypto/hash:71:19) at Object.createHash(node:crypto:140:10) at BulkUpdateDecorator.hashFactory(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/util/createHash.js:145:18) at BulkUpdateDecorator.update(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/util/createHash.js:46:50) at RawSource.updateHash(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack-sources/lib/RawSource.js:77:8) at NormalModule._initBuildHash(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:880:17) at handleParseResult(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:946:10) at /home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:1040:4 at processResult(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:755:11) at /home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:819:5node:internal/crypto/hash:71this[kHandle]=new_Hash(algorithm, xofLen);^Error: error:0308010C:digital envelope routines::unsupported
at newHash(node:internal/crypto/hash:71:19) at Object.createHash(node:crypto:140:10) at BulkUpdateDecorator.hashFactory(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/util/createHash.js:145:18) at BulkUpdateDecorator.update(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/util/createHash.js:46:50) at RawSource.updateHash(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack-sources/lib/RawSource.js:77:8) at NormalModule._initBuildHash(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:880:17) at handleParseResult(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:946:10) at /home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:1040:4 at processResult(/home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:755:11) at /home/pogolo/CLASES/NPM_curso/react-base/node_modules/webpack/lib/NormalModule.js:819:5{opensslErrorStack:['error:03000086:digital envelope routines::initialization error'],library:'digital envelope routines',reason:'unsupported',code:'ERR_OSSL_EVP_UNSUPPORTED'}Node.js v19.4.0
Fue ir actualizando a versiones más bajas de Node, me funcionó hasta la v16.0.0
11/15 Curso de NPM: Eliminación de dependencias y Package lock
La eliminación de dependencias en un proyecto de Node.js gestionado con NPM implica eliminar un paquete específico de tu proyecto. Además, debes tener en cuenta el archivo package-lock.json, que es utilizado por NPM para realizar un seguimiento preciso de las versiones de las dependencias. A continuación, te mostraré cómo puedes eliminar una dependencia y cómo gestionar el package-lock.json adecuadamente.
Eliminar una dependencia:
Para eliminar una dependencia específica de tu proyecto, puedes usar el comando npm uninstall o su forma abreviada npm r, seguido del nombre del paquete que deseas eliminar. Por ejemplo:
npm uninstall nombre-de-la-dependencia
o también ⬇
npm r nombre-de-la-dependencia
Esto eliminará la dependencia especificada del archivo package.json y del directorio node_modules.
Gestionar el package-lock.json:
El archivo package-lock.json es importante para garantizar que tu proyecto tenga una reproducción consistente de las dependencias en diferentes entornos. Cuando eliminas una dependencia, es importante que también actualices el package-lock.json para que refleje los cambios.
Para lograr esto, puedes hacer lo siguiente:
Después de eliminar la dependencia con npm uninstall, verifica si el package-lock.json se ha actualizado automáticamente. En muchas versiones recientes de NPM, esto ocurre de manera automática.
Si el package-lock.json no se actualiza automáticamente (lo cual es poco común), puedes forzar una actualización del package-lock.json ejecutando el siguiente comando:
npminstall
Este comando reinstalará todas las dependencias que figuran en tu package.json, y el package-lock.json se actualizará en consecuencia. Asegúrate de que el paquete que eliminaste ya no aparezca en el package.json.
Después de la actualización exitosa del package-lock.json, puedes verificar que la dependencia se haya eliminado completamente del directorio node_modules.
Recuerda que la eliminación de dependencias puede afectar la funcionalidad de tu proyecto, así que asegúrate de comprender las implicaciones antes de eliminar cualquier paquete. También, es buena práctica realizar pruebas exhaustivas después de hacer cambios importantes en las dependencias para asegurarte de que tu aplicación aún funcione correctamente.
!Imgur
Espero sea de utilidad. 👨💻
Apunte en Notion
A mi no me deja eliminarlo, me sale este error que no se cómo solucionar![](
Podes usar rm --help para saber que comandos podes usar. Y por las dudas, estos son comandos de unix quizas no sirvan si estan en "consola" de windows
Si estas en windows puede intentar con este comando:
rmdir /s/q node_modules
Para eliminar la carpeta de node_modules del mismo proyecto o para eliminar estas carpetas de todo nuestro equipo existe este comando:
npx npkill
Hola, tengo una duda en grupos de trabajo se tiende a usar el "npm install" para instalar las dependencias, pero al usar git suele ocurrir que el package.log tiene diferente versiones, una idea que tuve era usar el comando "npm ci", para evitar dicho problema, mi duda es, ¿Como se debe de manejar estos problemas y si esta bien usar "npm ci" una vez que en el proyecto exista el packga.lock para el resto del equipo?
Alguna ayuda? Me sale esto en casi la mayoria de comandos, con los videos anteriores no me pasaba
cuando elimino una dependencia con "npm unistall ****" ya no es necesario hacer el "npm install" verdad? lo del install es solo cuando se elimina manualmente del json