Tenemos una aplicación Vue/Nuxt establecida ejecutándose en producción, y para nuestro último sprint implementé un montón de cambios bastante comunes que normalmente haríamos para una nueva función.
Los cambios no incluyeron ningún cambio estructural en el componente de la página principal o en los componentes de diseño subyacentes, sino que la mayor parte de los cambios se realizaron en un componente secundario existente.
La página funciona perfectamente bien en Chrome, Edge, Firefox, etc... historia habitual... pero no en IE11.
Recibo inesperadamente el siguiente error al cargar la página;
[Vue warn]: Failed to mount component: template or render function not defined. found in ---> <Anonymous> <Nuxt> <VApp> <Layouts/default.vue> at layouts/default.vue <Root>El mismo componente de página funciona bien en las sucursales de otros colegas. Entonces, obviamente, es 'uno' de mis cambios, pero simplemente no puedo identificar ningún componente relacionado. Especialmente dado que funciona en otros navegadores.
Por ejemplo, ¿podría ocurrir esto debido a que no se está cargando un polirrelleno que se necesita inesperadamente? No he usado ninguna función de ES5/ES6 que no hayamos usado en otros lugares, o en esta página ya, por lo que parece extraño que eso lo provoque repentinamente.
Pasos que he intentado depurar;
Puede confirmar;
Como saben los desarrolladores de Vue, a menudo verá este error genérico cuando arruinó un componente en algún lugar profundo de su aplicación que no tiene ninguna relación con el componente de diseño, y una vez solucionado, este error genérico desaparece. Por lo tanto, comenté mi componente secundario para ver si eso estaba causando el problema.
Estoy molesto por lo que podría haber cambiado para romper solo esta página en IE11.
Además de ser IE11, por supuesto. Ugggh. Lo sé. Pero no podemos... todavía :(
Cualquier sugerencia/ayuda sobre qué más podría probar/depurar sería muy apreciada.
Me di cuenta de lo que estaba causando esto, pero es un poco raro.
Claramente, este era un problema dentro de una plantilla, sin embargo, nada dentro del alcance de las plantillas involucradas contenía código que no se usaba en otros lugares y que todavía funcionaba bien en IE11.
La cadena de plantilla;
Default.vue (layout) > pages > {program} > {form} > _id.vue (this was the 'anonymous' template above) > ServiceClaim.vue (shared component, changes were made here)El proceso;
En el componente ServiceClaim;
Conclusión;
Para ser justos, no estoy del todo seguro, tal vez alguien más pueda explicarlo, pero en última instancia, se trata de un problema de compilación que no se pudo rectificar hasta que el código infractor se modificó, restauró y se reconstruyó la solución.