Un archivo javascript que contenga declaraciones de import que hagan referencia a los módulos del navegador de Firebase incrustados en un archivo HTML debe declararse como type="module" . Pero después de la conversión a módulos ES6, este calificador parece ser opcional.
¿Ya no se considera un módulo un archivo javascript "empaquetado"? Ciertamente todavía se comporta como un módulo, al menos en el sentido de que una función de Javascript en su archivo incluido no está disponible para el DOM (por ejemplo, una referencia "onclick" a una función incluida no funcionará).
Los ejemplos de etiquetas en los documentos de Google parecen confirmar el patrón: los scripts que usan módulos de navegador deben declararse type="module" , los scripts agrupados deben dejarse sin calificar. Pero, ¿qué está pasando exactamente aquí?
Un consejo sería muy apreciado
Sí, antes de compilar una aplicación, es decir, antes npm run build , elimine type="module" de todas las etiquetas de script.
Lo que sucede bajo el capó es que el paquete coloca todo el código de sus archivos .js en un archivo grande. Puede encontrar ese archivo dentro de su carpeta dist.
Si usa Webpack o Parcel o cualquier otro paquete, convierten JS de ES6+ a ES5, y ES5 no admite declaraciones de importación, por eso coloca todo el código js en un archivo grande.