Cuando este código se ejecuta:
// index.svelte import Chart, { Tooltip } from 'chart.js/auto.esm'; console.log({ Tooltip }); La Tooltip se envía con éxito a la consola, pero también aparece un error (en el navegador):
El módulo solicitado '/node_modules/.vite/chart_js_auto.js?v=9674d8be' no proporciona una exportación llamada 'Información sobre herramientas'
Entonces SvelteKit obviamente está ejecutando este código varias veces. ¿Por qué funciona una vez y luego falla? ¿Cómo hago para que funcione todo el tiempo?
'chart.js/auto.esm' en lugar de solo 'chart.js' porque SvelteKit necesita módulos ESM. Puedo import { Tooltip } from 'chart.js' y esto funciona localmente, pero hay un error de compilación diferente en Vercel:
SyntaxError: No se encontró la exportación con nombre 'Información sobre herramientas'. El módulo solicitado 'chart.js' es un módulo CommonJS, que puede no admitir todas las exportaciones de módulos como exportaciones con nombre.
La información sobre Tooltip debe importarse así (con SvelteKit):
import { Tooltip } from 'chart.js/dist/chart.esm;Código de importación completo:
import { Chart, registerables } from 'chart.js/dist/chart.esm'; Chart.register(...registerables); import { Tooltip } from 'chart.js/dist/chart.esm'; Además de importar desde chart.js/dist/chart.esm , tuve que registrar manualmente los módulos porque no se usó /auto .
Esto se debe a que cuando importa desde chart.js/auto, registra todo por usted y lo pondrá a disposición, pero solo exporta el gráfico.
Si desea importar específicamente la información sobre herramientas, deberá importarla así:
import {Tooltip} from 'chart.js'Tenga en cuenta que si lo hace así, deberá importar y registrar todas las funciones que está utilizando usted mismo.