Las dependencias son paquetes que vamos a utilizar en nuestro proyecto. Un paquete es el conjunto de módulos para resolver un problema. Saber manejar las dependencias en un proyecto permite desarrollar la aplicación más rápido sin partir desde cero.
Existen tres tipos de dependencias: locales, desarrollo y globales.
Qué son las dependencias locales
Las dependencias locales son aquellas que son obligatorias para el proyecto, es decir, son las necesarias para que la aplicación funcione en producción. Producción significa que tu aplicación está disponible para usarse.
Cómo instalar dependencias locales
Para instalar una dependencia local, utiliza uno de los siguientes comandos, donde <paquete> es el nombre del paquete.
Las dependencias locales se encuentran en el package.json en la propiedad "dependencies", seguido de la versión que fue instalada.
{ ...
"dependencies":{"paquete":"1.0.0"}}
Qué son las dependencias de desarrollo
Las dependencias de desarrollo son aquellas que no son obligatorias para el proyecto, es decir, sin estas la aplicación servirá. Estas dependencias ofrecen una ayuda para construir código de forma óptima, por ejemplo, formatear el código, agregar estilos, levantar un servidor para observar los cambios.
Cómo instalar dependencias de desarrollo
Para instalar una dependencia de desarrollo, utiliza el siguiente comando, donde <paquete> es el nombre del paquete.
Las dependencias de desarrollo se encuentran en el package.json en la propiedad "dev-dependencies", seguido de la versión que fue instalada.
{ ...
"dev-dependencies":{"paquete":"1.0.0"}}
Qué son las dependencias globales
Las dependencias globales son aquellas que están disponibles para todos los proyectos en tu computador, pero no aparecen el archivo de configuración package.json.
Cómo instalar dependencias globales
Para instalar una dependencia global, utiliza el siguiente comando, donde <paquete> es el nombre del paquete.
Ten en cuenta que para instalar dependencias globales requiera permisos elevados, esto se soluciona con la palabra reservada sudo en terminales basadas en Unix, o en Windows ejecutando la terminal como administrador. Puedes revisar este artículo: Resolving EACCES permissions errors when installing packages globally para evitar dar permisos cada vez que instalas una dependencia global.
Las dependencias globales no se encuentran en el package.json, por esta razón recomiendo no abusar de esta herramienta, ya que el archivo de configuración es muy importante para que otros desarrolladores tengan toda la información pertinente al proyecto, incluyendo las dependencias a utilizar.
Cómo visualizar los paquetes instalados
Para ver qué dependencias locales están instaladas, ejecuta el siguiente comando:
$ npm list
Para ver qué dependencias globales están instaladas, ejecuta uno de los siguientes comandos:
$ npm list -g
$ npm list -g --depth 0
Puedes utilizar el flag--depth para indicar la profundidad de dependencias, esto mostrará los paquetes que contiene cada paquete.
$ npm list --depth 2
Contribución creada por Andrés Guano (Platzi Contributor).
npm install eslint --save-dev ---> dependencia que solo va a ser utilizada en el entorno de desarollo
npm install react --save ---> dependencia para ser llevada a produccion.
Paquetes Globales
npm install -g
Ver lista de los paquetes
npm list
Ver lista de paquetes globlales
npm list -g
bien
Genial!
Investigando encontré una información que explica un poco más sobre las dependencias.
.
Las dependencias de desarrollo son aquellos paquetes que necesitamos en un proyecto mientras estamos desarrollándolo, pero una vez tenemos el código generado del proyecto, no vuelven a hacer falta. Los paquetes instalados con el flag --save-dev o -D se instalan en esta modalidad, guardándolos en la sección devDependences del fichero package.json.
.
Por otro lado, las dependencias de producción son aquellos paquetes que necesitamos tener en la web final generada, como librerías Javascript necesarias para su funcionamiento o paquetes similares. Los paquetes instalados con el flag --save-prod, -P o directamente sin ningún flag se instalan en esta modalidad, guardándolos en la sección dependences del fichero package.json.
.
Veamos un ejemplo de instalación con ambos tipos de paquetes:
# Instala en modalidad de desarrollo el paquete "gh-pages"$ npm install --save-dev gh-pages
+ gh-pages@3.1.0added 50 packages from12 contributors and audited 92 packages in1.998s
# Instala en modalidad de producción la librería "Howler"$ npm install howler
+ howler@2.2.0added 1packagefrom1 contributor and audited 93 packages in1.615s
En el primer caso estamos instalando el paquete gh-pages, una librería y comando CLI para desplegar fácilmente un proyecto en GitHub Pages. Como se trata de un paquete que no es necesario incluir en la web final (se utiliza en desarrollo para desplegar), pues lo instalamos con los flags --save-dev o -D.
.
En el segundo caso, estamos instalando el paquete Howler, una librería Javascript que permite manipular y gestionar archivos multimedia de audio desde el navegador. En este caso se trata de una librería JS que si estará incluida en la versión definitiva de la página, por lo que la instalaremos con el flag --save-prod, -P o sin indicar ninguno, ya que es la opción por defecto.
.
.
Nunca pares de aprender💚
Excelentes conceptos que estaba buscando para comprender mejor el concepto de las dependencias. Gracias!
Increible bro, que genial gracias!
Buen aporte.
¿Cuál paquete es esteee?
El paquete es cowsay, el comando sería:
cowsay -f dragon-and-cow "AHORA VERÁS VAQUITA EL PODER DEL NPM"| lolcat
No sabia que podias instalar cowsay con NPM.
Les dejo un ejemplito muy chulo
Instalar cowsay (npm install cowsay)
Instalar fortune (npm install fortune)
Agregar a scripts el comando cowsay de esta manera:
"scripts":{"test":"echo \"Error: no test specified\" && exit 1","cowsay":"fortune | cowsay"},
ejecutar cowsay con ++npm run cowsay++
Verán una vaca diciendo una frase cool:
Cero útil pero cuando menos curioso.
Lo lúdico también es útil. A mí me encanta cowsay, si lo encajo en mi código que bien
Aunque hasta ahora no me funciona. Quiero que funcione...
Mi resumen de la clase
npm install package-name → Instala por defecto una dependencia de producción.
npm install package-name —save-dev → Instalar dependencia de desarrollo.
npm install package-name -D
npm install package-name —save → Instalar dependencia de producción.
npm install package-name -S
Los paquetes globales no se ligan a un proyecto, sino al sistema operativo. No todos los paquetes soportan ser instalados de esta forma.
npm install -g package-name → Instalar paquete de forma global.
npm list → Ver la lista de los paquetes instalados en el proyecto. Para ver los instalados de forma global se usa el flag -g.
Excelente resumen lo voy a copiar y pegar
por si no les deja instalar el COWSAY, es por permisos del root, se soluciona así.
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/
Hay una plataforma para revisar el costo/peso de las librerías de npm (las dependencias agregan peso a nuestros proyectos, así que es importante tenerlo en cuenta en ocasiones). Además muestra paquetes alternativos que también podrían funcionar: https://bundlephobia.com
Y como dato, así como nuestro proyecto usa paquetes/dependencias, esos mismos paquetes tienen sus propias dependencias y eso es lo que vemos en el archivo package-lock.json y por esto mismo es que aunque instalemos 2 paquetes el node_modules es tan grande (por todas las dependencias de todos)
¿Recuerdan este para los que vinimos haciendo la ruta completa de FullStack Developer con JavaScript. en el curso de terminal de comandos?
Cómo se desinstalan los paquetes? Supongamos el escenario en el que alguien agrega accidentalmente "cowsay" a las dependencias que van a ser enviadas a producción :smile:
Mas adelante explican como hacerlo, pero para adelantártelo se hace utilizando **npm uninstall ** y el nombre de la dependencia , por ejemplo:
npm uninstall cowsay
justo viste este comentario antes de regarla XD jajaja por un typo !, so Gracias por la pregunta y la respuesta
06/15 Curso de NPM: Instalación de Dependencias
Primero, veamos de forma sencilla que son las dependencias:
En el mundo de la programación, las "dependencias" se refieren a piezas de código o bibliotecas que tu programa o proyecto necesita para funcionar correctamente. Imagina que estás construyendo una casa con bloques de construcción. Cada bloque de construcción representa una parte de tu proyecto, como una función o una característica.
Las dependencias son como los bloques de construcción especiales que no fabricas tú mismo, sino que los obtienes de una tienda. Necesitas estos bloques de construcción específicos porque hacen cosas útiles que no quieres o no puedes construir desde cero.
Aquí hay un ejemplo más concreto:
Imagina que estás creando un sitio web y deseas agregar un calendario interactivo a tu página. Ahora, en lugar de escribir todo el código para hacer un calendario desde cero, puedes buscar en una tienda (que es como la tienda de dependencias en el mundo de la programación) y encontrar un "paquete de calendario" que alguien más ya ha construido.
Este "paquete de calendario" es una dependencia. Lo descargas y lo usas en tu proyecto, y tu sitio web ahora tiene un calendario funcional sin que hayas tenido que escribir todo el código complicado tú mismo.
Las dependencias pueden ser pequeñas, como una función simple que hace una tarea específica, o grandes, como bibliotecas enteras con muchas funciones y características. Son útiles porque te permiten reutilizar el trabajo de otros programadores y te ahorran tiempo y esfuerzo.
Es importante gestionar las dependencias de tu proyecto correctamente para asegurarte de que funcionen bien juntas y que tu proyecto no se rompa debido a incompatibilidades entre ellas. Para hacer esto, las herramientas como NPM (Node Package Manager) se utilizan para instalar, actualizar y gestionar las dependencias en tus proyectos de programación.
Instalando dependencias
La instalación de dependencias en un proyecto de Node.js es una parte fundamental del desarrollo de aplicaciones, ya que permite incorporar bibliotecas y paquetes de terceros para extender las capacidades de tu aplicación. Puedes instalar dependencias utilizando NPM (Node Package Manager), que es la herramienta estándar para la gestión de dependencias en proyectos Node.js. Aquí te muestro cómo hacerlo:
1. Crear o navegar hasta el directorio del proyecto:
Asegúrate de estar en el directorio de tu proyecto o crea uno nuevo usando el comando mkdir (crear directorio) o cd (cambiar directorio) en tu terminal.
mkdir mi_proyecto
cd mi_proyecto
2. Inicializar un archivo package.json:
Si aún no tienes un archivo package.json, puedes crearlo usando el siguiente comando. El archivo package.json es donde se registran las dependencias y configuraciones de tu proyecto.
npm init
Sigue las instrucciones en la terminal para configurar tu archivo package.json. Puedes aceptar las opciones predeterminadas o personalizarlas según tus necesidades.
3. Instalar una dependencia:
Para instalar una dependencia, usa el comando npm install seguido del nombre de la dependencia que deseas instalar. Por ejemplo, para instalar el paquete express, que es un marco web popular para Node.js:
npminstall express
Esto descargará el paquete express desde el registro público de NPM y lo agregará como una dependencia en tu archivo package.json. Además, creará una carpeta llamada node_modules en tu proyecto para almacenar el código de la dependencia y sus dependencias.
4. Instalar dependencias de desarrollo (opcional):
Puedes instalar dependencias que solo son necesarias durante el desarrollo de tu proyecto, como herramientas de compilación, pruebas o linters, utilizando el flag --save-dev o su versión corta -D. Por ejemplo:
npminstall eslint --save-dev
5. Usar dependencias en tu código:
Después de instalar una dependencia, puedes importarla o requerirla en tu código para usarla. Por ejemplo, en un archivo JavaScript:
const express =require('express');const app =express();// Usar express y configurar rutas, middleware, etc.
6. Actualizar dependencias:
Periodicamente, debes actualizar tus dependencias para obtener las últimas correcciones de errores y características. Puedes hacerlo con el siguiente comando:
npm update
Estos son los pasos básicos para instalar dependencias en un proyecto de Node.js utilizando NPM. A medida que tu proyecto crezca, es importante mantener tus dependencias actualizadas y gestionar cuidadosamente las versiones para garantizar la compatibilidad de tu aplicación.
!Imgur
Espero sea de utilidad. 👨💻
si en algún caso, no les funciona el comando cowsay, verifiquen si en wsl está instalado nodejs de no ser así se puede instalar con el comando
"sudo apt install nodejs"
la instalacion del cowsay todo joya, pero a la hora de ejecutar : /npm/cowsay: 11: exec: node: not found no hay chance, ayuda!
tengo el mimso problema y no encuentro solucion
asegurate que sea una instalación global, yo por error lo instale en produccion y me salio el mismo error
Use el comando: < npm list -g | cowsay -f stegosaurus >
🔨 Archivos del Proyecto 🔨
Pasos 📌
• En la terminal, dentro de la carpeta npm-init, instalamos una dependencia que permite mostrar la fecha/hora en JavaScript:
npm install moment
• También instalamos a eslint, que permite validar la sintaxis en JavaScript, se puede instalar con una flag para sea solamente usada en un entorno de desarrollo:
npm install eslint --save-dev
• O también se puede ejecutar (vamos a ejecutar éste):
npm install eslint -D
• Otra dependencia que se puede instalar pero solo para producción sería (vamos a ejecutar éste):
npm install react --save
• O de esta forma:
npm install react -S
• Vamos ++VS Code++, se ha agregado el archivo package-lock.json y la carpeta node-modules. Al revisar el archivo package.json, se puede observar los cambios realizados con las instalaciones que se han agregado, hasta el momento quedó así:
{"name":"npm-init","version":"1.0.0","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["javascript","angular","node"],"author":"Maria Rodriguez","license":"MIT","dependencies":{"moment":"^2.29.4","react":"^18.2.0"},"devDependencies":{"eslint":"^8.41.0"}}
• En la terminal se va a instalar paquetes globales como cowsay (permite dibujar una vaca con una frase en la terminal), éste paquete no altera o modifica al package.json del proyecto porque solo es de forma global, se ejecuta:
npm install -g cowsay
• Para ver todas las opciones que se tiene del paquete cowsay, basta con ejecutar:
cowsay
• Por ejemplo podemos pasarle una frase y que salga la vaca con ese mensaje:
• Para ver los paquetes instalados a nivel global, se ejecuta:
npm list -g
• Aparece:
├── corepack@0.17.0├── cowsay@1.5.0└── npm@9.6.7
Buenas , me podrian ayudar ? Cuando uso el comando cowsay me aparece este error .
cowsay : No se puede cargar el archivo C:\Us
ers\varga\AppData\Roaming\npm\cowsay.ps1
porque la ejecución de scripts está
deshabilitada en este sistema. Para obtener
más información, consulta el tema
Buenas noches, tengo problema al instalar "cowsay" no se si sea por la version de node y npm, me podrian ayudar?
En las versiones mas actuales no hay diferencia ya que ambas tienen el mismo comportamiento (instalar el paquete y agregarlo como dependencia).
En las versiones anteriores de npm esto no era así y npm install por defecto no agregaba el paquete como dependencia, por lo que se tenía que agregar el --save
Me gusta mucho como explica el profesor Oscar, me transmite mucha paz y tranquilidad.
Va detallando cada línea de código y eso hace que el curso sea muy bueno.
Una consulta, me aparece que no puedo ejecutar cowsay porque la ejecución de
scripts está deshabilitada en mi sistema, cómo podría habilitarlo porfavor?
Eso es debido a que no tienes instalado WSL (En caso que estes utilizando windows) o algun tipo de sistema que permita la ejecucion de scripts en la terminal. Te recomiendo realizar el curso de prework