Objetivo: Intentar crear un blog simple usando Gatsby
Resultados:
34 vulnerabilities (11 moderate, 23 high)
cada vez que instale algo usando npm en este proyectoEnfoque: estoy siguiendo la guía disponible aquí , y en la tarea de instalar el complemento de transformación MDX , obtengo el siguiente error
Command-used: npm install gatsby-plugin-mdx @mdx-js/mdx@v1 @mdx-js/react@v1 Output/Console Error: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: my-gatsby-site@1.0.0 npm ERR! Found: react@18.2.0 npm ERR! node_modules/react npm ERR! react@"^18.1.0" from the root project npm ERR! peer react@"^16.9.0 || ^17.0.0 || ^18.0.0" from gatsby-plugin-mdx@3.18.0 npm ERR! node_modules/gatsby-plugin-mdx npm ERR! gatsby-plugin-mdx@"*" from the root project npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer react@"^16.13.1 || ^17.0.0" from @mdx-js/react@1.6.22 npm ERR! node_modules/@mdx-js/react npm ERR! @mdx-js/react@"v1" from the root project npm ERR! peer @mdx-js/react@"^1.0.0" from gatsby-plugin-mdx@3.18.0 npm ERR! node_modules/gatsby-plugin-mdx npm ERR! gatsby-plugin-mdx@"*" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force, or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! See <home-folder>/.npm/eresolve-report.txt for a full report. npm ERR! A complete log of this run can be found in: npm ERR! <home-folder>/.npm/_logs/2022-07-06T15_46_56_149Z-debug-0.log
No es que "usted deba" normalmente hacer lo que estoy a punto de sugerir, pero puede ejecutar:
npm install gatsby-plugin-mdx @mdx-js/mdx@v1 @mdx-js/react@v1 --legacy-peer-deps
Básicamente, lo que hará es decirle a npm que desea instalar dependencias de pares, la razón por la que esto sucede es porque está usando React@18.2 en su proyecto, pero los paquetes que está tratando de instalar están usando una versión inferior de React. Por lo tanto, NPM le arroja este error.
La razón por la que "usted no debería" normalmente hacer esto es imaginar que hay una dependencia dentro de un paquete que está marcado como vulnerable, pero actualmente tiene instalada una versión "arreglada". Entonces estaría instalando la dependencia del par que podría tener una vulnerabilidad.
Puede ejecutar el código anterior y estar "bien", no es gran cosa que quiera instalar una versión menor de React.
Pero lo que también debe pensar es si realmente necesita React@18.2, o podría usar una versión anterior porque, ¿cuál es la probabilidad de que use alguna de las características que podrían estar en la última versión?
Esta es también una razón por la que muchos desarrolladores no van e instalan la versión más reciente de React cuando están creando proyectos, porque tienes que confiar en los paquetes mantenidos por desarrolladores independientes o por una comunidad de personas encantadoras. que estén dispuestos a ayudar a mantener un paquete para actualizarlo con las últimas versiones de Reacts.
Estas son básicamente las tres cosas principales que puede hacer:
Espero que esto ayude :)
Al migrar este proyecto a un proveedor de hospedaje, también deberá decirles que tiene paquetes que forzó a instalar con --legacy-peer-deps
creando una variable de entorno para el sitio en la plataforma del proveedor de hospedaje o con Archivo .npmrc
con lo siguiente:
legacy-peer-deps=true