首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“不提供名为”工具提示“的导出,”即使我可以输出工具提示

问“不提供名为”工具提示“的导出,”即使我可以输出工具提示
EN

Stack Overflow用户
提问于 2022-02-08 08:04:48
回答 2查看 1.2K关注 0票数 2

当此代码运行时:

代码语言:javascript
复制
// index.svelte   
import Chart, { Tooltip } from 'chart.js/auto.esm';
console.log({ Tooltip });

Tooltip成功地输出到控制台,但我也得到了一个错误(在浏览器中):

请求的模块'/node_modules/.vite/chart_js_auto.js?v=9674d8be‘不提供名为“工具提示”的导出。

因此,SvelteKit显然是多次运行此代码。为什么它只工作一次,然后就失败了呢?我怎么才能让它一直工作?

我导入了'chart.js/auto.esm',而不仅仅是'chart.js',因为SvelteKit需要ESM模块。我可以在本地使用import { Tooltip } from 'chart.js',但是在Vercel上有一个不同的构建错误:

SyntaxError:未找到导出“工具提示”的名称。请求的模块'chart.js‘是一个CommonJS模块,它可能不支持所有module.exports作为命名导出。

​

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-08 14:34:49

Tooltip需要像这样导入(使用SvelteKit):

代码语言:javascript
复制
import { Tooltip } from 'chart.js/dist/chart.esm;

完整的进口代码:

代码语言:javascript
复制
import { Chart, registerables } from 'chart.js/dist/chart.esm';
Chart.register(...registerables);

import { Tooltip } from 'chart.js/dist/chart.esm';

除了从chart.js/dist/chart.esm导入之外,我还必须使用手动注册模块,因为没有使用/auto。

票数 2
EN

Stack Overflow用户

发布于 2022-02-08 12:12:53

这是因为当您从chart.js/auto导入时,它会为您注册所有内容并使其可用,但只会导出图表。

如果您想要专门导入工具提示,您需要导入它,如下所示:

代码语言:javascript
复制
import {Tooltip} from 'chart.js'

请记住,如果您这样做,您将需要导入和注册您正在使用的每个功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71030372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档