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

迁移Ionic项目至Vitest遇Unexpected token 'export'错误求助

解决Ionic项目迁移Vitest时的SyntaxError: Unexpected token 'export'问题

问题原因

报错明确指出,@ionic/core包中的ES模块文件被当作CommonJS包处理,导致Node.js无法正确解析export语法,进而抛出SyntaxError。

解决方案

按照错误提示的临时方案修改你的vite.config.ts,将相关Ionic包加入Vitest的依赖内联列表,具体操作如下:

  1. 更新vite.config.ts配置,添加test.deps.inline字段,包含@ionic/core和@ionic/react(错误栈中也涉及到@ionic/react):
import { defineConfig } from "vite";

export default defineConfig({
  test: {
    globals: true,
    setupFiles: "src/setupTests.ts",
    deps: {
      inline: ["@ionic/core", "@ionic/react"]
    }
  },
});
  1. 若上述配置未解决问题,可额外添加模块解析条件,强制优先使用浏览器环境的ES模块版本:
import { defineConfig } from "vite";

export default defineConfig({
  resolve: {
    conditions: ['browser', 'module']
  },
  test: {
    globals: true,
    setupFiles: "src/setupTests.ts",
    deps: {
      inline: ["@ionic/core", "@ionic/react"]
    }
  },
});

原理说明

  • deps.inline配置让Vitest直接内联处理指定依赖,跳过默认的CommonJS/ES模块转换逻辑,避免解析冲突。
  • resolve.conditions指定模块解析时优先匹配的环境条件,确保加载的是适配浏览器的ES模块版本,而非Node.js的CommonJS版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:24:18