👨🏼‍💻

khriztianmoreno's Blog

Inicio Etiquetas Acerca |

Posts with tag npm

NPM dependencies vs devDependencies

2022-06-20
javascriptweb-developmentnpm

tl;drLas dependencies son requeridas por nuestra aplicación en tiempo de ejecución. Paquetes como react, redux y lodash son todos ejemplos de dependencias. Las devDependencies solo son necesarias para desarrollar o compilar su aplicación. Paquetes como babel, enzyme y prettier son ejemplos de devDependencies.NPM dependencies vs devDependenciesnpm installLa diferencia real entre dependencies y devDependencies se ve cuando ejecuta npm install.Si ejecuta npm install desde un directorio que contiene un archivo package.json (lo que normalmente hace después de clonar un proyecto, por ejemplo).✅ Se instalarán todos los paquetes ubicados en dependencies ✅ Se instalarán todos los paquetes ubicados en devDependenciesSi ejecuta npm install <package-name> (lo que normalmente hace cuando desea agregar un nuevo paquete aL proyecto existente), es decir, npm install react.✅ Se instalarán todos los paquetes ubicados en dependencies ❌ No se instalará ninguno de los paquetes ubicados en devDependenciesDependencias transitivasSi el paquete A depende del paquete B y el paquete B depende de C, entonces el paquete C es una dependencia transitiva del paquete A. Lo que eso significa es que para que el paquete A se ejecute correctamente, necesita el paquete B instalado. Sin embargo, para que el paquete B se ejecute correctamente, es necesario que esté instalado el paquete C. ¿Por qué menciono esto? Bueno, las dependencies y devDependencies también tratan las dependencias transitivas de manera diferente.Cuando ejecutas npm install desde un directorio que contiene un archivo package.json:dependencies ✅ Descarga todas las dependencias transitivas.devDependencies ❌ No descarga ninguna dependencia transitiva.Especificar dependencies frente a devDependenciesA partir de NPM 5, cuando ejecuta npm install <package-name>, ese paquete se guardará automáticamente dentro de sus dependencies en su archivo package.json. Si quisiera especificar que el paquete específico debería incluirse en devDependencies en su lugar, agregaría la marca --save-dev.npm install prettier --save-devInstalación en un servidor de producciónA menudo, necesitará instalar su proyecto en un servidor de producción. Cuando haga eso, no querrá instalar devDependencies ya que obviamente no las necesitará en su servidor de producción. Para instalar solo las dependencies (y no devDependencies), puede usar la marca --production.npm install --production¡Espero que esto haya sido útil y/o te haya hecho aprender algo nuevo!Profile@khriztianmoren