La Mayoría No Sabe Cómo Funcionan Las Dependencias Del Package.JSON

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 61

  • @alejandrodavidbenolol
    @alejandrodavidbenolol 2 роки тому +31

    Más que el salseo que ya lo tenía leído me gusto mucho como explicaste el funcionamiento de npm a la hora de aplanar el instalado de dependencias. No sabía muchas de las cosas que explicaste, a demás el consejo de la extensión de VSC Version Lens me parece genial para los que nos gusta cotillear por git y ver un poco de que van todas esas dependencias que como junior solemos dejar que hagan nuestro trabajo sin saber bien de que van. Saludos y gracias Midu

  • @alvarommedia
    @alvarommedia 9 місяців тому +2

    Es impresionante! Cada vez que me sale un video de este buen hombre, aprendo de todo. El nuevo refrán: "No veras un video de midu, sin aprender algo nuevo".

  • @ShaditoKun
    @ShaditoKun 2 роки тому +1

    Ese plugin también lo uso, también se puede con npm outdated, y tener global el npm check updates, darle ncu -u y después un npm install

  • @javiergarciafillol4454
    @javiergarciafillol4454 2 роки тому +3

    Gran video acabo de entender un fallo que tenía en mi código!

  • @alejo.morales
    @alejo.morales Рік тому +3

    Usar "npm ci" soluciona esos problemas y además es mucho más rápido, porque solo busca es instala las versiones exactas del package-lock

    • @miguelgd1985
      @miguelgd1985 Рік тому +1

      +1 Para eso esta package-lock para fijar tu version exacta como dices. ademas es mala practica fijar librerias a ciertas versiones especificas, xq no dejas rango x si luego quieres instalar otra libreria y no tiene soporte para la version que usas. Igualmente te queremos midudev ❤

  • @phonevelarde5692
    @phonevelarde5692 Рік тому

    Excelente hermano , muchas gracias por compartir esta valiosa información. Saludos desde Venezuela.

  • @jesusjuvinao8210
    @jesusjuvinao8210 2 роки тому +2

    Quisiera que youtuve tuviera otro boton de like solo para midudev, Gracias hombre... todo un genio.

  • @mediatech7284
    @mediatech7284 2 роки тому +1

    Muy bueno el video. Siempre información muy útil y excelente la explicación. Gracias. Saludos.

  • @julioDazaDev
    @julioDazaDev Рік тому +2

    Midu cuando trabajas con Angular y lanzas ng new el crea todas las dependencias de su core con carets... yo creería que si son manteiners empresariales tipo Google podemos dejarlos así.

  • @tonyjaradev
    @tonyjaradev Рік тому

    ahhhhhhh me salvaste loco!!! Esto con pnpm me soluciono la vida.

  • @juanfelipetangarife3735
    @juanfelipetangarife3735 2 роки тому +3

    Excelente video, eres un pro!!

  • @josemarquezrojas
    @josemarquezrojas 2 роки тому +6

    Corrígeme si me equivoco pero, cuando una dependencia entra en conflicto con otra por la versión de una dependencia en común, npm lo que hace es que crea una directorio node-modules dentro de cada dependencia para evitar ese conflicto de versiones. no toma cualquier arbitrariamente porque eso no es correcto.

    • @robertomolinasilvera4863
      @robertomolinasilvera4863 2 роки тому

      Sí, aunque en el caso de las peerDependencies, sí hay algún conflicto y fuerzas, creo que usará la versión que tu hayas instalado aunque no sea la correcta para la dependencia que la necesita. Por eso antes de instalar pkgs hay que revisar siempre el package.json y ver todo ese tipo de detalles.

  • @pixeldev650
    @pixeldev650 2 роки тому +2

    Muy buena explicación, bastante útil.

  • @BiiR4
    @BiiR4 2 роки тому

    Recientemente tuve un problema en un proyecto, concretamente con el paquete ngx-mask y sospecho que tiene que ver con este problema que relatas. A mí equipo de trabajo, de un momento a otro a algunos dejó de funcionar ese paquete, a algunos si les funcionaban las máscaras y a otros no. Al final, por el tiempo, decidimos mudarnos a otro paquete.

  • @mtzrmzia
    @mtzrmzia 2 роки тому +2

    ¿Que configuración-tema tienes en tu iTerm?

  • @chicho69-cesar
    @chicho69-cesar 2 роки тому +2

    Genial Midu grande

  • @josect777
    @josect777 2 роки тому

    Eres un máster, increíble!

  • @programandoConFelipe
    @programandoConFelipe Рік тому

    wow no sabia eso y creo que el 90% de los desarrolladores confian ciegamente en el npm, gracias por el video.

    • @midulive
      @midulive  Рік тому

      Gracias a ti, Felipe! 🤗

  • @jeancarlomorales4496
    @jeancarlomorales4496 2 роки тому

    No puede ser posible, un midu máster que nos explica todo como un crack, y a la vez un midu guapo que conquistaria Roma con una mirada 7u7

  • @mjerez6029
    @mjerez6029 2 роки тому +1

    Pero el package-lock.json no soluciona ese problema?
    Es decir si yo tengo package-lock.json en el repo y hago un mpi despues de que la nueva version con codigo malicioso dea publica, no pasaria nada por q la version esta "lockeada" en el package-lock.json. solo tendría problemas si borro el package-lock.json y hago un install

  • @gouzeroinfinity2624
    @gouzeroinfinity2624 Рік тому

    joe ni siquiera se puede confiar en los updates :c jsjsj/ buen dato para los nuevos que ingresan yo desconocia, lo tendre en mente a futuros proyectos , me perdi un pco lo volvere a ver

  • @miguelvasquez9849
    @miguelvasquez9849 5 місяців тому

    Me pasó que desplegué un proyecto que funcionaba y empezó a sacar errores, resulta que un paquete estaba actualizado y una dependencia estaba generando un problema. O sea, no uses carets.

  • @ANDREW_YHWH
    @ANDREW_YHWH 2 роки тому

    Bueno, trataré de resumirlo. Midu, cuando coloco: brew install node... al final de la descarga me aparece este mensaje: Running `brew cleanup node`...
    Disable this behavior by setting HOMEBREW_NO_INSTALL_CLEANUP.
    Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
    Después coloco: brew update... y me muestra: Already up-to-date. Eso quiere decir que está instalado y además en la ultima versión.
    Después: node -v ... y me dice 17.4.0
    Después npm -v y me dice 8.3.1
    Después de allí no he querido colocar otro comando más porque no sé si instaló correctamente por ese ultimo mensaje que me muestra la terminal al instalar node con brew, qué debo hacer?
    TODO ESTO EN LA TERMINAL DE MACOS.

  • @dolapex
    @dolapex 2 роки тому

    Que opinas de usar ~version “Approximately equivalent to version” ?, el problema podria seguir pasando pero seria mucho menor si ponemos que solo actualize patches sin modificar Mayor y minor versions.

  • @santiagorosero4652
    @santiagorosero4652 2 роки тому

    es para todos? por que se puede usar el * para que sea el ultimo dijo unicamente el que cambie, se supone que en el versionamiento, ese digito corresponde a fixes no? ( obviamente se que se lo pueden pasar por donde quieran, pero se parte de la buena fé siempre )

  • @nemines001
    @nemines001 2 роки тому

    saludos que buen video, para aprender la utilidad de esos archivos gracias

  • @emiliogrv_
    @emiliogrv_ 2 роки тому +1

    Creo que si el proyecto tiene una sólida base de tests igual se podría usar el caret, si al actualizar las dependencias hace que explote algún test, hasta allí llega la historia de esa actualización, útil para casos como dependbot en github con CI/CD ¿qué opinan?

    • @dolaya237
      @dolaya237 Рік тому

      con renovate bot puedes checar esas actualizaciones de paquetes y saber si se rompe, igual que con las herramientas que mencionaste

  • @jossimunoz1957
    @jossimunoz1957 2 роки тому +1

    y habra alguna forma de fijar todas las versiones de un package.json que se encuentra con todas las dependencias con los valores "latest" ?

  • @INAVACL
    @INAVACL 2 роки тому

    Muchas gracias

  • @bscodev
    @bscodev 2 роки тому +1

    Llegue temprano. Gracias Midu

  • @danielclow
    @danielclow Рік тому

    No entendí muy bien, que pasa si instalo una dependencia que a su vez tiene otras dependencias, a pesar de que yo use la versión fija de esa dependencia(sin el caret), las dependencias de la dependencia pueden ser variables (con el caret)

  • @prch818
    @prch818 2 роки тому +1

    Alguien podría explicarme que sería "aplanar una dependencia"? Gracias de antemano

  • @AlbertoCarrizo
    @AlbertoCarrizo Рік тому

    Geniooooo.

  • @neyk
    @neyk Рік тому +1

    Esto va a sonar muy noob pero en el tema de dependencias y como gestionarlas soy totalmente nuevo,. En primer lugar, como de importantes son las vulnerabilidades de las que te avisa expo-cli cuando instalas un nuevo paquete? A caso es posible conseguir el 0 vulnerability? xd

    • @cesarrawr249
      @cesarrawr249 Рік тому +1

      Eso ya depende de los desarrolladores del cli, por ejemplo, para web con nextjs, hasta ahorita me da 0 vulnerabilidades. Con create react app me daba como 7 vulnerabilidades graves. Y con Vite me daba warnings. En general no afectan mucho, no te das cuenta. Si intentas actualizar a la fuerza vas a romper el proyecto, así que mejor espera futuras actualizaciones de expo

  • @ecuadorturismo
    @ecuadorturismo 2 роки тому

    lo maximo

  • @efrainhernandez861
    @efrainhernandez861 2 роки тому

    Entonces si necesito actualizar una dependencia es mejor quitar siempre el caret 😮

  • @albertjoelbonilla
    @albertjoelbonilla 2 роки тому +2

    Liberty Liberty Liberty

  • @macevedo7170
    @macevedo7170 2 роки тому +2

    Yo lo conocia como sombrerito chino

    • @elProdigio
      @elProdigio 2 роки тому +1

      Ja, ja, ja, qué bueno.

  • @gaspararguello946
    @gaspararguello946 2 роки тому

    curioso. eso pasaría en Deno?

    • @midulive
      @midulive  2 роки тому +1

      Depende. Si usas una versión fijada, pues no. Pero si usas la URL a saco en el import, pues pasaría lo mismo.

  • @jmartinez4906
    @jmartinez4906 2 роки тому

    Muy bueno el vídeo pero hay algo que no entiendo. Según creo, el package-lock.json existe para evitar el problema del ^, de modo que en dicho fichero tenemos las versiones exactas usadas y aunque hagamos npm install, siempre que no hayamos modificado el package.json, se nos instalaran las mismas versiones que ya teníamos, y no se actualizará ninguna. No sé si estoy equivocado, pero pensaba que funcionaba de esta forma.

    • @misterl8129
      @misterl8129 2 роки тому +1

      x2, segun yo esa era la gracia del package-lock. Mantener la integridad de las dependencias que instalaste. Esperemos que @midu nos aclare esto o ver que tiene por decir

    • @midudev
      @midudev 2 роки тому +6

      Lo explico al principio del vídeo. El package-lock es para las dependencias de tu proyecto. Si tu proyecto es una dependencia de otro proyecto, no puedes controlar que tenga un package-lock. Eso es lo que pasó con paquetes como karma.

    • @jmartinez4906
      @jmartinez4906 2 роки тому +1

      Ahh, cierto, se me había pasado ese detalle. Pues aclarado queda, muchas gracias, tu canal es una maravilla y tus explicaciones siempre son muy útiles. Saludos.

  • @DanielBustamante-le1kt
    @DanielBustamante-le1kt 6 місяців тому

    Gracias, no sabía esto, npm es una mierda... Saludos

  • @kmylodarkstar2253
    @kmylodarkstar2253 2 роки тому

    yarn 3, pnpm?

  • @paulo2357
    @paulo2357 2 роки тому

    oye, pero el problema que mostraste es por *no* usar el caret en tu proyecto, es decir, si tu proyecto y todas la dependencias usarán el caret, siempre tendrías la ultima version

    • @midulive
      @midulive  2 роки тому

      Justamente al usar caret te instalá la última versión de patch y minor, lo que a veces puede romper tu proyecto. Es lo que explica el vídeo.

  • @JoseManuelTA156
    @JoseManuelTA156 2 роки тому

    Se escucha mal

  • @egan36
    @egan36 2 роки тому +2

    No entendi nada xd

  • @outoblack2782
    @outoblack2782 Рік тому

    ni siquiera sé que es un package por eso buscaba algo info pero sigo sin e n t e n d e r

  • @gerardovanced3983
    @gerardovanced3983 Рік тому

    no entendí 😎