Tengo un módulo que puede o no usar otro módulo validador externo. Si el validador no está instalado en el proyecto, no quiero continuar con la importación y detectar el error y el aviso de que el módulo del validador no existe.
Me las arreglé para manejar esto con éxito usando una captura de prueba con require():
if (messages) { try { Validator = require("@test/validator").default; console.log(Validator); } catch (e) { if (e.code === "MODULE_NOT_FOUND") { console.error("Can't load dvalidator!"); } else { throw e; } } } Aunque esto funciona como se esperaba, no creo que este sea el camino a seguir y, en su lugar, me gustaría usar la característica popularmente sugerida import() .
Cuando trato de usar la importación dinámica, aparece un error de compilación que indica This dependency was not found:
Estoy tratando de usar la importación dinámica de la siguiente manera:
if (messages) { import('@test/validator') .then(Validator => { console.log(Validator) }) .catch(err => console.error(err)); }No estoy seguro si estoy malinterpretando el concepto de importación (), pero espero que la importación no se realice si el módulo no existe y detecte el error según mis preferencias. En cambio, todavía está tratando de importarlo, por lo que aparece el error de compilación.
¿Hay alguna forma en que pueda lograr esto usando importaciones dinámicas o debo ceñirme a mi primer ejemplo usando Try Catch?