• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

2.7K
Views
Eliminar `package-lock.json` para resolver conflictos rápidamente

En una configuración de equipo, por lo general, me he enfrentado a conflictos de fusión en package-lock.json y mi solución rápida siempre ha sido eliminar el archivo y regenerarlo con npm install . No he pensado seriamente en las implicaciones de esta solución porque no ha causado ningún problema perceptible antes.

¿Hay algún problema con eliminar el archivo y hacer que npm lo vuelva a crear de esa manera en lugar de resolver los conflictos manualmente?

about 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Sí, puede y afectará a todo el proyecto de muy mala manera.

  1. si su equipo no ejecuta npm install después de cada extracción de git pull , todos están usando diferentes versiones de dependencias. Entonces termina con "¡¡pero a mí me funciona!!" y "No entiendo por qué mi código no te funciona"

  2. incluso si todo el equipo ejecuta npm install , no significa que todo esté bien. en algún momento puede encontrar que su proyecto actúa de manera diferente. en una parte que hace años que no cambias. y después de la depuración (probablemente, bastante dolorosa), encontrará que se debe a que la dependencia de tercer nivel se actualizó para la próxima versión principal y esto provocó algunos cambios importantes.

Conclusión: nunca elimine package-lock.json .

Sí, para las dependencias de primer nivel, si las especificamos sin rangos (como "react": "16.12.0" ), obtenemos las mismas versiones cada vez que ejecutamos npm install . Pero no podemos decir lo mismo sobre las dependencias de más de 2 niveles de profundidad (dependencias de las que dependen nuestras dependencias), por lo que package-lock.json es realmente importante para la estabilidad.

En tu caso, es mejor que hagas lo siguiente:

  1. corregir conflictos en package.json
  2. ejecutar la instalación de npm install

Tan fácil como parece. Lo mismo para yarn: corrige el conflicto del archivo de bloqueo por sí solo. El único requisito aquí es resolver todos los conflictos en package.json de antemano, si los hay.

Según los documentos , npm solucionará los conflictos de combinación en package-lock.json por usted.

[Actualización de 2021] ¡importante! Si ya usa alguna biblioteca y la cuenta npm/GitHub de su mantenedor está pirateada. Y se lanza una nueva versión con código malicioso en su interior. Y tienes package-lock.json intacto. Estarás bien. Si lo sueltas, estás en problemas.

about 3 years ago · Santiago Trujillo Report

0

Sí, puede tener efectos secundarios negativos, tal vez no muy a menudo, pero por ejemplo, puede tener en package.json "moduleX": "^1.0.0" y solía tener "moduleX": "1.0.0" en package-lock.json

Al eliminar package-lock.json y ejecutar npm install , podría estar actualizando a la versión 1.0.999 de moduleX sin saberlo y tal vez hayan creado un error o hayan realizado un cambio radical hacia atrás (sin seguir el control de versiones semántico).

De todos modos, ya existe una solución estándar para ello.

  1. Solucione el conflicto dentro de package.json
  2. Ejecutar: npm install --package-lock-only

Echa un vistazo a este enlace para obtener más información:

https://docs.npmjs.com/cli/v6/configuring-npm/package-locks#resolving-lockfile-conflicts

about 3 years ago · Santiago Trujillo Report

0

Sé que es una vieja pregunta, pero para futuros buscadores, también puede usar npm-merge-driver que intenta resolver automáticamente los problemas de combinación de archivos relacionados con npm.

Simplemente instálelo globalmente npx npm-merge-driver install --global . Puede leer más sobre esto aquí npm-merge-driver

Editar: solo quiero advertir a las personas interesadas en usar el paquete anterior, que en algún momento puede comportarse de manera errática y difícil de eliminar. Entonces, aunque es una herramienta útil, todavía necesita algo de trabajo.

Editar: este repositorio ahora está archivado y es de solo lectura.

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error