• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

353
Vistas
¿Se necesita más a Lerna con los espacios de trabajo de NPM 7.0.0?

¿Se necesita más a Lerna con los espacios de trabajo de NPM 7.0.0?

Realmente no tengo experiencia con esta nueva función npm.

Npm/rfcs escribe sobre esto:

En primer lugar, existe la alternativa de dejar el problema establecido para que el usuario lo resuelva, ya existe el proyecto muy popular Lerna que proporciona algunas de estas características.

También está disponible la alternativa de admitir solo el aspecto de instalación (o arranque, como lo llama Lerna) de esta propuesta, siguiendo un enfoque menos rico en funciones pero que aún permitiría el objetivo básico de mejorar la experiencia del usuario de administrar múltiples paquetes secundarios pero de todos los comentarios recopilados durante la fase de investigación de este RFC, esta alternativa es mucho menos deseable para la comunidad de mantenedores involucrados.

Me alegro por cada respuesta y explicación :)

about 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

NPM 7 ya está disponible y admite espacios de trabajo. también continuarán desarrollando este dominio en los próximos lanzamientos,

Dicho esto, lerna viene con muchas más funciones de alto nivel que npm7 o los espacios de trabajo de yarn , además, yarn declaró que nunca intentarán reemplazar herramientas como lerna , sino que tienen la intención de implementar la lógica central de manejo de espacios de trabajo como la instalación de dependencias de paquetes secundarios y enlace simbólico de paquetes. Espero que npm haga lo mismo.

Un gran ejemplo es el comando: lerna changed que le brinda la lista de paquetes que han cambiado desde la última versión etiquetada, esto podría ser extremadamente útil para CI/CD. le invitamos a explorar los comandos adicionales proporcionados por lerna .

El único comando a partir de hoy compatible con npm7 relacionado con los espacios de trabajo es en realidad npm i / npm ci , que no es nuevo, pero se encarga de los paquetes anidados y los enlaces simbólicos.

He escrito un artículo que profundiza en la configuración en caso de que desee pasar a un monorepo con npm7, por lo que trabajar sin lerna es definitivamente una opción, probablemente necesitará trabajar más en el lado de CI/CD en comparación con lerna y agregue algunos scripts de desarrollo por su cuenta que afectarán los paquetes anidados. Además, en mi opinión, lerna se adapta más al desarrollo de bibliotecas que a las aplicaciones.

about 3 years ago · Santiago Trujillo Denunciar

0

La respuesta es sí, aún necesita Lerna u otra herramienta para complementar las características que vienen con los espacios de trabajo npm@7. Estas son las cosas que no manejan los espacios de trabajo npm @ 7 (al momento de escribir esta respuesta):

Comprender la topología monorepo

Los espacios de trabajo de npm conocen la topología del paquete monorepo hasta cierto nivel. Los espacios de trabajo, por ejemplo, saben que el paquete-c usa el paquete-a y el paquete-b como sus dependencias. Pero hay una pequeña cosa a tener en cuenta:

 $ npm run build --workspaces

Este comando ejecutará npm run build para todos los paquetes monorepo.

Digamos que el paquete-a depende del paquete-b y el paquete-c depende tanto del paquete-a como del paquete-b. El orden de ejecución que obtiene al ejecutar el comando depende de su matriz de workspaces de trabajo en package.json . Así que si tienes esto:

 { "workspaces": ["package-a", "package-b", "package-c"] }

entonces el orden de construcción será:

  • paquete-a
  • paquete-b
  • paquete-c

pero el orden correcto debería ser:

  • paquete-b
  • paquete-a
  • paquete-c

Para que las cosas se construyan en el orden correcto, debe asegurarse de enumerarlas en el orden correcto en package.json:

 { "workspaces": ["package-b", "package-a", "package-c"] }

Gestión del cambio

Lerna puede detectar cambios en monorepo y proporcionarle una lista de paquetes que han cambiado. Esto es útil si solo desea ejecutar pruebas para paquetes modificados. Los espacios de trabajo npm@7 aún no pueden hacer tal cosa (5 de octubre de 2021).

Publicación

Lerna puede administrar el control de versiones y la publicación de sus paquetes. Viene con dos estrategias diferentes de gestión de versiones: fijas e independientes. Genera un registro de cambios y publica solo los paquetes modificados en npm.

Seguro que hay mucho más, pero estas son las cosas principales que aún necesita además de los espacios de trabajo npm@7. Si usa Lerna u otras herramientas, eso depende de usted.

He documentado todo lo que he aprendido mientras mantenía JavaScript monorepo con Lerna en un artículo. Describe cómo los procesos de administración de monorepo se simplificaron significativamente después de la introducción de npm@7, pero por qué todavía necesitamos usar Lerna u otras herramientas además.

about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda