Históricamente, la mayoría de mis proyectos de navegador se han creado con módulos UMD. Estoy tratando de cambiar a ESNext.
Solo estoy tratando de importar un módulo UMD, así:
import {Chart, ChartDataSets, ChartConfiguration} from './com/chart'; Mecanografiado está bien con esto, pero el navegador arroja el error: Loading module from [...]/com/chart was blocked because of a disallowed MIME type (“text/html”).
Multa. Así que lo probé con la extensión de archivo js:
import {Chart, ChartDataSets, ChartConfiguration} from './com/chart.js'; Obtengo: Import not found: Chart .
Intenté importar todo:
import * as Chart from './com/chart.js';Chart no es un constructor. Chart.Chart no está definido.
Lo probé como un tipo de referencia, incluida una etiqueta de secuencia de comandos en el HTML:
///<reference types='./com/chart'/>Esto no es lo ideal, pero funcionó. Sin embargo, a Typescript no le gusta:
'Chart' refers to a UMD global, but the current file is a module. Consider adding an import instead.ts(2686)
Sí, intenté agregar una importación. No tengo claro algo. ¿Por qué el módulo se trata de manera diferente cuando lo importo con la extensión de archivo .js?