You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入carbon-icons-svelte后Svelte组件Jest测试报意外token错误如何解决

解决方案

核心错误原因:你将transformIgnorePatterns配置错误添加到了svelte.config.test.cjs中,该文件是Svelte预处理器的专属配置,不会被Jest读取,因此配置完全不生效。

方案一:Mock图标组件(优先推荐)

测试时不需要真实渲染第三方图标,直接Mock所有carbon-icons-svelte组件即可,性能更高也不会有语法兼容问题:

  1. 项目根目录新建__mocks__/CarbonIconMock.svelte文件,内容可留空或写最简结构:
<span />
  1. 在jest.config.cjs的moduleNameMapper配置中新增规则:
moduleNameMapper: {
  // 原有paths映射规则保留,新增以下行
  'carbon-icons-svelte/lib/(.*)\\.svelte$': '<rootDir>/__mocks__/CarbonIconMock.svelte',
  ...pathsToModuleNameMapper(compilerOptions.paths, {prefix: '<rootDir>/'})
}

调整后重启Jest即可生效。

方案二:转译第三方包(需要真实渲染图标时使用)

如果你需要在测试中真实渲染图标内容,按以下步骤调整:

  1. 把你之前写在svelte.config.test.cjs中的transformIgnorePatterns删除,移动到jest.config.cjs的根配置项中:
module.exports = {
  // 原有transform、testMatch等配置保留,新增以下行
  transformIgnorePatterns: ["node_modules/(?!carbon-icons-svelte/)"]
}
  1. 升级svelte-jester到最新版本,确保支持处理node_modules目录下的Svelte文件。

内容的提问来源于stack exchange,提问作者Deotyma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:15:07