En ciertas situaciones es necesario instalar una versión específica de un paquete, ya sea porque el proyecto no puede actualizarse a versiones recientes, o porque el equipo necesita trabajar sobre una misma versión. Saber instalar cualquier versión de un paquete es fundamental para la gestión de dependencias de tu proyecto.
Cómo instalar una versión específica de un paquete
Para instalar una versión exacta de una dependencia, utiliza el siguiente comando, donde <paquete> es el nombre del paquete y <versión> es la versión exacta.
$ npminstall<paquete>@<versión>
También puedes usar la versión latest para asegurarte que está instalando la última versión disponible del paquete.
$ npminstall<paquete>@latest
Este comando instalará la versión exacta del paquete desde el repositorio de NPM. Esto sirve para manejar diferentes versiones del paquete instalado donde sea compatible con el proyecto actual y no provoque errores.
Por ejemplo:
$ npminstall json-server@0.15.0
Cómo instalar dependencias opcionales
Para instalar una dependencia opcional, utiliza el siguiente comando, donde <paquete> es el nombre del paquete.
Ten en cuenta la O mayúscula, si utilizas la o minúscula, el paquete se instalará como dependencia local.
Las dependencias de desarrollo se encuentran en el package.json en la propiedad "optionalDependencies", seguido de la versión que fue instalada.
{ ...
"optionalDependencies":{"paquete":"1.0.0"}}
Simular la instalación de una dependencia
Para simular la instalación de una dependencia, utiliza el siguiente comando, donde <paquete> es el nombre del paquete.
$ npminstall --dry-run <paquete>
Este comando mostrará el resultado de instalación sin instalarlo en el proyecto.
Por ejemplo:
$ npm i react --dry-run
added 4 packages in 2s
23 packages are looking for funding
run `npm fund`for details
Cómo funciona el comando npm install
El archivo package.json contiene la información de las dependencias del proyecto, pero si no tienes instaladas esas dependencias, la manera para instalarlas todas en un solo comando es npm install o la forma corta npm i. De este modo, instalarás cada paquete con su respectiva versión indicada en el package.json.
Si únicamente tenías el archivo package.json después de ejecutar el comando, aparte de instalar todas las dependencias, se generará un archivo package-lock.json y un directorio llamado node_modules.
El archivo package-lock.json muestra todo el árbol de dependencias de tu proyecto. ¿Qué significa esto? Cada dependencia instalada también tiene sus respectivas dependencias, a estas se las denomina sub-dependencias. El árbol de dependencias muestra todas las sub-dependencias como si de ramas se tratasen.
El directorio node_modules contiene todos los archivos ejecutables de Nodejs y los módulos que contiene cada dependencia. Este directorio es ignorado por los repositorios de Git, por eso es importante el archivo package.json, ya que te permitirá instalar las dependencias con npm install cuando realices un fork de cualquier repositorio.
Contribución creada por Andrés Guano (Platzi Contributor).
npm install package-name -o → Instalar una dependencia opcional
Se pueden generar conflictos cuando se tienen paquetes que usan la misma dependencia pero en versiones diferentes. Para evitar esto se puede simular una instalación con npm install package-name —dry-run. Con esto se simula la instalación pero sin agregar ningún paquete, si no hay ningún conflicto se procede a instalar de la manera convencional.
npm install package-name@0.15.0 → Instalar la versión especifica de un paquete. Si luego se quiere instalar la versión más reciente se usa npm install package-name@latest.
npm install → Instala las dependencias que estén dentro de un package.json.
Gracias!
Buen aporte!
Hola Chic@s :D
Dependencias utilizadas en la clase
npm install eslint -o
Validar que una dependencia no tenga conflicto
npm install react-dom --dry-run
Instalacion de una version particular
npm install json-server@0.15.0
Instacion de la version mas reciente
npm json-server@latest
Verificar instalacion
npm list
Instalar dependencia para un proyecto clonado
npm install
muchas gracias por tus aportes<3
En el examen te hacen una pregunta que es: "¿Cuál es comando que nos permite identificar las dependencias globales instaladas en nuestro sistema?" Y las posibles repuestas que ofrecen son:
npm list -g depth 0
npm list -g depth
npm list -g 0
Cuando fallas el examen por culpa de esta pregunta te redirige a esta clase y en esta clase no se habla de esto en específico o al menos no he podido verlo yo.
Por favor arreglen esta pregunta, ya que supongo que viene de una versión de curso pasado que existía de este mismo curso
Tengo el mismo inconveniente.
Coincido
Veo que no explican bien las dependencias opcionales, las dependencias opcionales son dependencias que no provocarán una falla durante la instalación de una aplicación o proyecto, ya que npm simplemente las ignora si fallan, por lo que el proyecto debe ser capaz de funcionar sin ellas, bien lo dice su nombre, son opcionales.
El comando para instalar una dependencia opcional es con O mayúscula y no con o minuscula como esa en la clase:
npm install eslint -O
También tiene su comando largo:
npm install --save-optional eslint
Este comentario debería estar anclado en la parte superior o corregir el video de la clase.
gracias Henry 🙏🏽
Para los que no puedan instalar alguno de los comandos, puede ser por falta de permisos de root, lo cual se arregla sencillamente agregando la palabra "sudo" al inicio, por ejemplo:
sudo npm install -g cowsay
en realidad se recomienda no utilizar sudo con npm ni ejecutarlo como root. Les dejo un articulo en donde está bien explicado en como darle solución a este problema por permisos de manera de no tener otros tipos de inconvenientes con las dependencias instaladas a nivel global: https://lenguajejs.com/npm/introduccion/problemas-permisos-npm/
lo idel seria entrar en el super usuario con el comando:
-sudo su
y posteriormmente se haría el comando visto en clase. Una vez terminamos salimos del modo super usuario.
me genera 5 vulnerabilidades el actual json-server
Me pasó lo mismo al instalar json-server
Me pasó igual, pero no sé si sea el json o la última versión de React
¿Que es una dependencia opcional?
Es una dependencia que si no esta presente, no afecta al desempeño de la aplicación, al momento de la instalación, no se romperá ni nada.
Instalación de dependecias de versiones especificas
Instalación de dependecias Opcionales
Al agregar -o despues del nombre de la dependencia a instalar estamos especificando que la dependecia es opcional y si hay una actualización pendiente estara se instalara. Sin embargo esto puede generar errores cuando el proyecto utiliza versiones diferentes.
npminstall<nombre de la dependecia> -g
Evitar errores en las Dependecias instaladas
Al agregar --dry-run despues del nombre de la dependecia a instalar estamos simulando una instalación y si esta no genera conflictos a continuación se instalara.
npminstall<nombre de la dependecia> --dry-run
Instala una versión de la Dependecia en Especifico
Al agregar @<version> por ejemplo @0.15.0 despues del nombre de la dependencia a instalar, estaremos instalando una version en concreto de la misma.
npminstall<nombre de la dependecia>@<version>#Con ejemplonpminstall json-server@0.15.0
Instalar la version mas reciente de una Dependencia
Al agregar @latest despues del nombre de la dependencia a instalar, estaremos instalando la ultima versión de la dependencia.
npminstall<nombre de la dependecia>@latest
#Con ejemplonpminstall json-server@latest
Instalar las dependecias a partir de un package.json
Dentro de nuestra carpeta o portafolio podemos ejecutar el siguiente comando, el cual instalara las dependecias que esten especificadas en el package.json
npminstall
Para acortar los comandos de instalación hagan lo siguiente:
npm i package-name
y nó
npm install package-name
🎱 Archivos del Proyecto 🎱
Pasos 📌
• Se puede actualizar la instalación de una dependencia en modo desarrollo a opcional, por ejemplo tenemos eslint, en la terminal se ejecuta:
npm install eslint -o
• Para vitar futuros conflictos entre dependencias, se puede simular una instalación sin alterar el entorno con --dry-run, por ejemplo para react tenemos:
npm install react-dom --dry-run
• También se puede instalar una dependencia para una versión en específico, por ejemplo:
npm install json-server@0.15.0
• Para instalar la última versión de una dependencia:
npm install json-server@latest
• Para instalar las dependencias de un proyecto que se ha clonado de internet, solo se instala los paquetes que están dentro del archivo package.json, ejecutar:
npm install
¿Alguien sabe qué se puede hacer en este caso que dice 5 moderate severity vulnerabilities al ejecutar npm install json-server@0.15.0 ? Gracias
Ejecutaste npm audit fix --force?
Sí lo ejecuté y ahora dice 11 vulnerabilidades. Y si lo ejecuto de nuevo vuelve a salir 5. 👇 Así:
Hola saludos, ¿Que pasa cuando hay cierta cantidad de vulnerabilidades?
Es verdad, acabo de ejecutar npm install json-server@0.15.0 y me dice 5 moderate severity vulnerabilities. ¿Qué hay que hacer? 🧐
Hay que actualizar la dependencia como ha hecho él
npm install json-server@latest
re viendo la clase y mirando comentarios en busca de comandos y otras cosas que me ayuden en una tarea PERSONAL que estoy haciendo.
me encontre con este comentario de hace un año mas o menos. de dudley delgado.
En el examen te hacen una pregunta que es: “¿Cuál es comando que nos permite identificar las dependencias globales instaladas en nuestro sistema?” Y las posibles repuestas que ofrecen son:
npm list -g depth 0
npm list -g depth
npm list -g 0
Cuando fallas el examen por culpa de esta pregunta te redirige a esta clase y en esta clase no se habla de esto en específico o al menos no he podido verlo yo.
Por favor arreglen esta pregunta, ya que supongo que viene de una versión de curso pasado que existía de este mismo curso
ahoram dejando esto en claro, y haciendo mi propia investigacion descubri uno que, el flag --depth se usa de varias maneras como podran ver aqui
pero el comando npm list -g puede funcionar correctamente sin especificar el flag depth y es que este sirve para no listar dependencias directas o indirectas de los paquetes top-level instalados de forma global, por ejemplo, si un paquete como pnpm necesitara por debajo otro paquete para funcionar (pongamos de ejemplo y SOLO de ejemplo npm) al hacer npm list -g --depth=0 se listaria pnpm pero npm y si hacemos --depth=1 pues si que se listaria esta dependencia INMEDIATA DE PNPM
Cuando trabajas con npm, es posible instalar dependencias de versiones específicas para asegurar la estabilidad y compatibilidad de tu proyecto. Puedes lograr esto de varias formas, como instalar una versión exacta, una versión mayor o menor específica, o un rango de versiones. Aquí te muestro cómo instalar dependencias de versiones específicas con npm:
Instalación de una versión exacta de una dependencia
Para instalar una versión exacta de una dependencia, debes especificar el número de versión deseado después del nombre del paquete. Por ejemplo, para instalar la versión 1.2.3 de una dependencia llamada "nombre_dependencia":
Instalación de una versión mayor o menor específica de una dependencia
También puedes instalar la última versión de una versión específica mayor o menor. Por ejemplo, para instalar la última versión de la versión 2.x de una dependencia llamada "nombre_dependencia":
bash Copy codenpm install nombre_dependencia@2
Para instalar la última versión de la versión 1.2.x de una dependencia llamada "nombre_dependencia":
bash Copy codenpm install nombre_dependencia@1.2
Instalación de un rango de versiones de una dependencia
Puedes instalar un rango de versiones utilizando el operador de comparación. Por ejemplo, para instalar cualquier versión que sea mayor o igual a 1.2.0 pero menor que 2.0.0 de una dependencia llamada "nombre_dependencia":
También puedes utilizar los prefijos ^ y ~ al especificar el número de versión para instalar la última versión compatible de una dependencia. Por ejemplo:
^: Instala la última versión compatible con la versión especificada en el primer segmento (por ejemplo, ^1.2.3 instalará la última versión compatible con 1.x.x).
~: Instala la última versión compatible con la versión especificada en el primer y segundo segmento (por ejemplo, ~1.2.3 instalará la última versión compatible con 1.2.x).
esto esta bueno
LAS VULNERABILIDADES:
# npm audit report
got <11.8.5Severity: moderate
Got allows a redirect to a UNIX socket - https://github.com/advisories/GHSA-pfrx-2q88-qq97
fix available via `npm audit fix --force`Will install json-server@0.4.2, which is a breaking change
node_modules/got
package-json <=6.5.0Depends on vulnerable versions of got
node_modules/package-json
latest-version 0.2.0-5.1.0Depends on vulnerable versions ofpackage-json
node_modules/latest-version
update-notifier 0.2.0-5.1.0Depends on vulnerable versions of latest-version
node_modules/update-notifier
json-server >=0.5.0Depends on vulnerable versions of update-notifier
node_modules/json-server
5 moderate severity vulnerabilities
To address all issues(including breaking changes),run: npm audit fix --force
En que casos es conveniente instalar un paquete como opcional? No me quedo del todo clara esa parte
Es conveniente usar dependencias opcionales si tienes una dependencia que no puede instalarse en algún equipo, puedes tener un plan de respaldo para ese caso.
Que pasa si luego de agregar json server me tira 5 vulnerabilidades, y cuando las intento fixear me tira 11 mas graves. Si intento fixear estas ultimas me devuelve al problema inicial y asi
Actualizar
Mi duda es siempre se debe realizar esto cada vez que vamos a iniciar un proyecto?
#### Instalacion de una dependencia opcional
¿Para qué sirve instalar una dependencia de forma opcional? R: Instalar de forma opcional una dependencia sirve para indicarle al proyecto que no es necesaria dicha dependencia para que el proyecto funcione es decir si esta esa dependencia o no el proyecto seguira funcionando.
_comando para hacer esto:_npm install \<nombre de la dependencia> -O : Hay que notar que la letra o es mayuscual
Las dependencias opcionales apareceran en el archivo package.json en el apartado _optionalDependencies_
#### Comando u opcion --dry-run
Este comando nos permite hacer una simulación de instalación de alguna dependencia para verificar que no existan problemas a la hora de instalarla de verdad, este comando existe porque hay ocaciones en que diferentes dependencias utilizan una dependencia en comun pero con difernetes versiones para verificar antes de instalar la dependencia que queremos podemos utilizar este comando. El comando se utiliza de la siguiente manera.
npm install \<nombre de la dependencia> --dry-run
#### Como instalar una versión espesifica
Para hacer esto utilizaremoms el simbolo __@__ al final del nombre de la dependencia seguido por el numero de versión que queremos de dicha dependencia. Ejemplo:
npm install \<nombre de la dependencia>@0.15.0
#### Como instalar la ultima versión de una dependencia
Para esto utilizamos o colocamos la palabra __latest__ despues del simbolo arroba o una opción tambien podria ser el colocar despues del arroba el número de versión pero para esto debemos saber cual fue la ultima versión. Ejemplo
npm install \<nombre de la dependencia>@latest
#### ¿Qué es lo que hace el comando npm install ?
Este comando por si solo así tal cual lo que va a hacer es buscar el archivo package.json e instalara todas las dependencias que hay ahi tanto las de desarrollo como las necesarias para el proyecto, esto fue lo que se dijo en el video no se menciono si también las dependencias opcionales pero yo creo que sí. Esto se utiliza normalmente cuando clonamos un repositorio y necesitamos instalar sus dependencias para poder trabajar en él.