Recientemente estoy aprendiendo el desarrollo de extensiones de Chrome y descubro que: Cuando uso
import { foo } from "./index" en background.js , obtendré un error: An unknown error occurred when fetching the script. , durante el uso
import { foo } from "./index.js"Todo funciona correctamente. ¿Podría alguien decirme la diferencia entre estas dos formas?
ES6 necesita que hagas referencia a un archivo para que lo busque.
Sin extensión o un directorio desde el que usar el índice son compatibles con cargadores externos como webpack, con las configuraciones correctas.
Con estos, si importas sin extensión, buscará un index.js dentro de tu ruta de importación como si fuera una carpeta.
O bien, si tiene una carpeta foo y dentro de ella un archivo index.js , puede importar ./foo sin la extensión e importará el archivo de índice.
Directamente en ES6, que yo sepa (por ejemplo, para la interpretación directa del navegador Chrome sin algún cargador), creo que se necesita una ruta de archivo completa para las importaciones locales, por lo que debe incluir la extensión .js cuando desee importar un archivo específico .