Recibo tres mensajes de advertencia al importar requesten un proyecto de paquete web básico. Un ejemplo mínimo para reproducir el error está disponible en GitHub (ejecutar npm instally 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 requirellamadas 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.jsarchivo a mi proyecto que anula las llamadas requeridas de alguna manera. - Actualizando mis bibliotecas.
ajv-5.0.1-beta.3tiene una solución que silencia las advertencias. Sin embargo, si quiero usarlo, tengo que esperar hasta que se libera, y entonces hastahar-validatoryrequestlanzar actualizaciones posteriores. Si hay una forma de forzar elhar-validatoruso de la versión beta deajv, eso resolvería mi problema. - Otro

new webpack.IgnorePlugin(/async/, /ajv/), dos de cada tres advertencias desaparecen, pero webpackCannot find module "../async". ¿Alguna idea sobre el valor mágico adecuado para que funcione?Respuestas:
Resuelto con
npm install [email protected] --saveSegún los autores de
ajv, es probable que el problema se resuelva en la última versión derequestdentro de unas semanas.fuente
npm remove requestreinstalar, luegopackage.jsonelimine el^antes del número de versión. Si abandona el^, es posible que el paquete se actualice después de quenpm updatevuelva a aparecer la advertencia.Reemplazar esto
con este-
fuente
System.Importfunción dónde encontrar el código fuente en lanode_modulescarpeta. La ruta cambia según la versión angular que esté utilizando. Debería ser manejado mejor por el equipo de Angular, con suerte ya lo ha sido.Esta advertencia se puede vincular a las inyecciones de paquetes en (dependencias o devDependencies).
Si el problema aparece de repente, verifique la última modificación en su package.json.
Considere la posibilidad de eliminar package-lock.json si planea reiniciar un archivo
npm install.fuente