‫Instructor: En este video, echemos
‫un vistazo a los dos tipos de paquetes que podemos
‫instalar con npm, y también a los dos tipos de instalaciones que existen.
‫Entonces, los dos tipos de paquetes
‫que podemos instalar son dependencias simples o dependencias de desarrollo.
‫Ahora, las dependencias simples o regulares son simplemente paquetes que contienen
‫algún código que incluiremos en nuestro propio código.
‫Entonces, el código sobre el cual construimos nuestra propia aplicación, y
‫es por eso que en realidad los llamamos
‫dependencias, porque nuestro proyecto y nuestro código dependen de
‫ellos para funcionar correctamente.
‫Por ejemplo, Express, que es, nuevamente, el
‫marco de Node que usaremos
‫más adelante
‫en el curso, será una dependencia.
‫Así que instalemos ahora nuestra primera dependencia solo
‫para mostrarte cómo funciona.
‫Y el paquete que vamos a instalar se llama Slugify, que
‫es una pequeña herramienta que podemos
‫usar para hacer URL más legibles a partir de nombres.
‫Por ejemplo, nombres de productos similares en el caso
‫de nuestro ejemplo de formulario de nodo.
‫Entonces, para instalar una dependencia simple en npm,
‫todo lo que tenemos que hacer es decir npm install,
‫y luego el nombre del paquete,
‫que es simplemente Slugify.
‫En versiones anteriores, también tendría que
‫decir guardar el tablero, así, pero ahora mismo
‫ya no es necesario.
‫Entonces, si solo especifica npm install slugify,
‫luego instalará este paquete como una dependencia regular.
‫Y observe lo que le sucede a nuestro paquete. json una vez realizada
‫la instalación.
‫Entonces, presionaremos regresar ahora, y veamos qué sucede.
‫Y de hecho, eso fue
‫realmente rápido e instaló nuestro paquete
‫de inmediato, y luego creó este nuevo campo aquí llamado
‫dependencias, y colocó nuestra primera dependencia, Slugify, allí mismo.
‫También tiene la versión del paquete, pero
‫hablaremos un poco más sobre eso más adelante en
‫esta sección.
‫Esta es nuestra primera dependencia
‫y, nuevamente, es solo una dependencia regular.
‫Y usaremos Slugify directamente en el siguiente
‫video, así que solo para tener una idea de cómo usamos estas
‫dependencias de terceros en nuestro código.
‫Pero ahora mismo, lo
‫que quiero mostrarles es que además de estas
‫dependencias regulares, también tenemos dependencias de desarrollo.
‫Y estas suelen ser solo herramientas para el desarrollo,
‫por ejemplo, como un paquete de código como
‫Webpack, una herramienta de depuración o una biblioteca de pruebas.
‫Entonces, estas son dependencias de desarrollo.
‫No son necesarios para la
‫producción, por lo que nuestro código realmente no
‫depende de ellos, simplemente los usamos para desarrollar nuestras aplicaciones.
‫Así que instalemos ahora una dependencia de desarrollo,
‫que es solo un nombre corto para la dependencia de desarrollo,
‫y la herramienta que
‫vamos a instalar se llama nodemon.
‫Entonces, npm install nodemon, así, y luego lo que tenemos que hacer para
‫especificar que esta es una
‫dependencia de desarrollo es decir save dev, y esto agregará una
‫entrada a este paquete. json en
‫las dependencias de desarrollo.
‫Así que echemos un vistazo
‫a eso una vez que haya terminado de instalar.
‫Ahora nodemon es una herramienta muy agradable que nos ayuda
‫a desarrollar aplicaciones Node JS al reiniciar automáticamente
‫la aplicación Node cada vez que cambiamos algunos archivos en nuestro
‫directorio de trabajo.
‫Así que recuerde que en el proyecto,
‫en realidad cerraba el servidor todo el tiempo y
‫luego lo reiniciaba cada vez que
‫cambiaba el código.
‫Pero con esta herramienta, eso ya no es necesario.
‫Por lo tanto, reiniciará automáticamente el servidor cada vez que
‫hagamos un cambio.
‫Así que ya terminó de instalar,
‫y creó un nuevo campo llamado dependencias de desarrollo,
‫y luego, por supuesto, agregó nodemon allí.
‫Y entonces nuestro proyecto ahora básicamente
‫sabe que dependemos de esta herramienta aquí para desarrollar nuestra aplicación,
‫y este paquete aquí para construir nuestra base de código.
‫Estos son los dos tipos de paquetes.
‫Ahora hablemos también de los dos tipos de instalaciones
‫de estos
‫paquetes, porque ahora todo lo que hicimos fue
‫instalar estos paquetes localmente, por lo que
‫solo funcionan en este proyecto y podemos
‫verlo aquí en la carpeta de
‫nuestro proyecto porque
‫npm creó este nueva carpeta llamada
‫módulos de nodo para nosotros.
‫Tiene todas las dependencias de nuestro proyecto.
‫Pero ahora podría preguntar, bueno, solo
‫especificamos Slugify y nodemon,
‫entonces, ¿qué están haciendo todos estos paquetes aquí?
‫Bueno, eso es simplemente porque a
‫su vez son dependencias de nuestras dependencias.
‫Si, por ejemplo, Slugify necesita uno de estos
‫paquetes, entonces npm también instalará estas dependencias.
‫Y así terminamos con todas estas dependencias aquí
‫en nuestro proyecto.
‫Entonces, estos son para módulos locales, así que Slugify
‫y nodemon, nuevamente, los
‫instalamos localmente en nuestra carpeta de proyecto y
‫no funcionarán en ningún otro lugar.
‫Pero con npm, también podemos tener instalaciones globales, y las instalaciones
‫globales estarán disponibles en cualquier lugar, no solo
‫en nuestra carpeta de proyecto,
‫sino en todas las carpetas de toda su máquina.
‫Por lo tanto, un paquete debe instalarse
‫globalmente cuando proporciona un comando ejecutable que puede ejecutar desde la
‫interfaz de línea de comandos.
‫Y nodemon, por ejemplo, es una herramienta como esa.
‫Entonces uso nodemon en todos los proyectos de Node en los que
‫trabajo, por lo que tengo nodemon instalado como una dependencia global
‫porque de esa manera no tengo que instalarlo cada vez
‫que estoy creando un nuevo proyecto.
‫Simplemente puedo usarlo en un
‫nuevo proyecto porque ya está instalado globalmente.
‫Así que hagámoslo ahora.
‫Borre la consola
‫aquí y luego instálela globalmente.
‫Entonces npm install, y en realidad hay
‫una abreviatura para instalar.
‫De hecho, basta con escribir i, así.
‫En realidad, así es como lo hago yo.
‫Entonces npm i nodemon, y luego marque global.
‫Presiona regresar
‫ahora, y ahora se está instalando a nivel mundial.
‫Pero en realidad nos da este
‫error, y si está en una Mac y
‫lo hizo así, también
‫le dará un error simplemente porque
‫no tiene los permisos para instalar este paquete.
‫Si estás en una Mac, no funciona, y
‫creo que en Windows debería funcionar,
‫al menos esa es la
‫experiencia que tengo, pero si estás en una
‫Mac, en realidad has puesto sudo delante. y
‫luego ingrese su contraseña básicamente solo para darle permiso.
‫Bueno, en mi caso
‫tengo Touch ID, pero si no lo tienes, puedes
‫usar la contraseña de tu cuenta de usuario.
‫De todos modos, ahora eso funciona, y ahora podemos comenzar a usar
‫nodemon en este proyecto.
‫Así que déjame mostrarte cómo funciona.
‫Entonces, antes de ejecutar nuestra aplicación, lo hicimos así.
‫Escribimos nodo y luego index. js.
‫Lo que hice aquí ahora fue en realidad un autocompletado,
‫y creo que no te había hablado
‫de eso en
‫este momento, así que déjame continuar y eliminar esto.
‫Entonces comencé a escribir la i aquí, y dado
‫que no hay otro archivo que comience con una i, ahora puedo
‫presionar la tecla tabulador,
‫por lo que automáticamente completará el resto del
‫nombre del archivo por mí.
‫Solíamos hacerlo así, luego presionamos regresar, y luego,
‫cuando queríamos hacer algún cambio,
‫teníamos que salir de esta manera y
‫reiniciar todo nuevamente.
‫Pero ese ya no es el caso porque ahora tenemos nodemon.
‫Entonces, todo lo que tenemos que hacer es en lugar de escribir node,
‫escribimos nodemon y luego index. js.
‫Bien, y ahora está viendo cada archivo con
‫cada extensión.
‫Si volvemos ahora a nuestro archivo aquí, ni siquiera
‫necesitamos cambiar nada, todo lo que tengo
‫que hacer es guardarlo y
‫echar un vistazo a lo que sucede aquí en la consola.
‫Así que lo guardaré ahora
‫y verá que se reinicia debido a los cambios.
‫Ahora comienza de nuevo, índice de nodo. js.
‫Entonces verá que detrás de
‫escena, en realidad todavía está ejecutando el comando original que solíamos
‫hacer, por lo que el índice de nodo. js, por lo que nodemon es
‫básicamente una envoltura de ese comando de
‫nodo simplemente para hacernos
‫la vida un poco más fácil.
‫Esta es una herramienta extremadamente, extremadamente útil para que trabajemos
‫con Node, y durante
‫el resto del curso, siempre usaré nodemon en lugar
‫del comando node.
‫Y ahora, para terminar, hay una pequeña cosa
‫más que quería mostrarles aquí.
‫Entonces, digamos que no instalamos nodemon a nivel mundial.
‫Bueno, ¿cómo usaríamos entonces nuestra dependencia de desarrollo aquí localmente?
‫Entonces, el nodemon local que tenemos instalado.
‫Bueno, no podríamos simplemente ejecutarlo desde la
‫línea de comandos porque las dependencias locales no funcionan así.
‫No podemos simplemente usarlos de inmediato en la línea de comandos, pero
‫lo que podemos hacer es especificar un script npm y lo
‫hacemos aquí en este campo de script.
‫Cuando hicimos npm en él,
‫en realidad puso este script aquí para nosotros,
‫que es para
‫pruebas, y luego simplemente dijo que no tenemos ninguna prueba especificada.
‫Entonces, eso es como un marcador de posición
‫para nosotros ahora, que podemos reemplazar ahora con start,
‫y luego con el índice nodemon. js.
‫Y este nodemon que estoy usando
‫aquí será en realidad
‫el nodemon proveniente de las dependencias de desarrollo.
‫En lugar de escribir el comando aquí en la línea
‫de comandos como
‫lo hice aquí, simplemente pondré lo mismo en un script npm.
‫El script se llama start
‫en este caso, y ahora podremos ejecutarlo.
‫Así que déjame terminar este aquí.
‫Así es como ejecutamos un script npm,
‫npm run and start, y de hecho nos da
‫el comando aquí índice nodemon. js, y ahora todo
‫funciona exactamente de la misma manera que antes.
‫¿Derecha?
‫Y esto no tiene
‫nada que ver con el hecho
‫de que instalamos nodemon globalmente antes, simplemente funciona así porque,
‫nuevamente, nodemon es nuestra dependencia de desarrollo aquí mismo en el script npm.
‫Luego podemos escribir
‫algo como una instrucción de interfaz de
‫línea de comandos que usará esa dependencia
‫local y no la global.
‫Nuevamente, esto habría funcionado
‫bien sin nodemon instalado globalmente.
‫Así es como especificas el script npm, y haremos
‫un montón más a lo largo de
‫este curso y podemos darles todo tipo de nombres.
‫El inicio es el predeterminado para el desarrollo.
‫Entonces, en realidad,
‫para empezar, ni siquiera tenemos que escribir npm run
‫start, pero escribir npm start es suficiente
‫para activar este comando especial.
‫Como puede ver de nuevo, funciona muy bien así.
‫Perfecto.
‫Entonces, en este video,
‫aprendió la diferencia entre las dependencias regulares y las
‫dependencias de desarrollo, y luego también
‫aprendió que puede instalarlas local o
‫globalmente, o también puede instalarlas en ambos lugares, ¿verdad?
‫Pero en realidad, las dependencias globales
‫que instalamos suelen ser siempre herramientas de desarrollo porque
‫son las que tienen más sentido instalar
‫así, de nuevo porque normalmente nos proporcionan como
‫un buen programa de interfaz de línea de comandos.
‫En el siguiente video, usaremos esta dependencia que instalamos aquí
‫en nuestro código para que
‫aprenda cómo incluir
‫un módulo de terceros en su código.