Recibo tres mensajes de advertencia al importar request
en un proyecto de paquete web básico. Un ejemplo mínimo para reproducir el error está disponible en GitHub (ejecutar npm install
y npm start
).
Critical dependency: the request of a dependency is an expression
¿Cómo puedo deshacerme de esta advertencia?
Más información:
Webpack intenta resolver las require
llamadas de forma estática para hacer un paquete mínimo. Cuando una biblioteca usa variables o expresiones en una llamada require (como require('' + 'nodent')
en estas líneas de ajv
), Webpack no puede resolverlas estáticamente e importa el paquete completo.
Mi razón fundamental es que esta importación dinámica no es deseable en la producción, y es mejor mantener el código libre de advertencias. Eso significa que quiero cualquier solución que resuelva el problema. P.ej:
- Configure manualmente el paquete web para importar las bibliotecas necesarias y evitar que se produzcan las advertencias.
- Agregar un
hack.js
archivo a mi proyecto que anula las llamadas requeridas de alguna manera. - Actualizando mis bibliotecas.
ajv-5.0.1-beta.3
tiene una solución que silencia las advertencias. Sin embargo, si quiero usarlo, tengo que esperar hasta que se libera, y entonces hastahar-validator
yrequest
lanzar actualizaciones posteriores. Si hay una forma de forzar elhar-validator
uso de la versión beta deajv
, eso resolvería mi problema. - Otro