Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

740
Views
¿Cómo anular una subdependencia npm anidada con un paquete diferente por completo (no solo un número de versión de paquete diferente)?

Visión de conjunto

Tengo problemas para resolver una vulnerabilidad ReDoS identificada por npm audit . Mi aplicación tiene una subdependencia ansi-html anidada que es vulnerable a ataques, pero desafortunadamente, parece que los mantenedores se han ausentado sin permiso . Como puede ver en la sección de comentarios de ese problema de Github, para solucionar este problema, la comunidad ha creado una bifurcación del repositorio llamado ansi-html-community que se encuentra aquí , que aborda esta vulnerabilidad.

Por lo tanto, me gustaría reemplazar todas las referencias anidadas de ansi-html con ansi-html-community .

Problema

Mi estrategia normal de usar npm-force-resolutions no parece poder anular las subdependencias anidadas con un paquete diferente por completo, sino solo los mismos paquetes que tienen un número de versión diferente. He investigado esto durante varias horas, pero desafortunadamente, la única forma que he encontrado para solucionarlo parece ser con yarn , que ahora estoy considerando seriamente usar en lugar de npm. Sin embargo, esto no es ideal ya que toda nuestra canalización de CI/CD está configurada para usar npm.

¿Alguien sabe de alguna otra forma de lograr la sustitución/resolución de paquetes de subdependencia anidados sin tener que cambiar al uso de hilo?

preguntas relacionadas

Estas son preguntas de interés que pude encontrar, pero desafortunadamente, tienden a discutir solo métodos para anular el número de versión del paquete, no el paquete en sí.

Describe cómo anular el número de versión:

¿Cómo anulo las versiones de dependencia anidadas de NPM?

Tiene una discusión de comentarios sobre npm shrinkwrap (no ideal):

npm: ¿cómo anular las dependencias de un paquete dependiente?

Otras preguntas relacionadas con StackOverflow:

CSE Índice de preguntas relacionadas

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Me lo imaginé. A partir de octubre de 2021, la solución que usa npm-force-resolutions es en realidad muy similar a cómo la especificaría usando yarn . Solo necesita proporcionar un enlace al tarball donde normalmente especificaría el número de versión principal. Su sección de resoluciones de package.json debería verse así:

 "resolutions": { "ansi-html": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" }

Para encontrar el enlace al tarball, use el siguiente comando, modificando su registro según sea necesario:

 npm view ansi-html-community dist.tarball --registry=https://registry.npmjs.org/

Además, tenga en cuenta que para que npm-force-resolutions funcione cuando ejecuta npm install , necesitará una entrada de preinstall en la sección de scripts de package.json :

 "scripts": { "preinstall": "npx npm-force-resolutions" }
over 4 years ago · Santiago Trujillo Report

0

Para aquellos que necesitan la misma solución con hilo, simplemente agregue esto a su paquete.json

 "resolutions": { "ansi-html": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" }

y luego ejecute yarn install

también puede hacerlo después de esto, si no funciona de inmediato

rm yarn.lock

yarn import

over 4 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 Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!