Aurelia项目中Vitest路径导入失败:无法解析services/api
解决Vitest无法识别Vite别名的问题
确认Vite别名配置正确性
先检查你的vite.config.js里的别名配置是否符合规范,正确的配置示例如下:
import { defineConfig } from 'vite'; import { resolve } from 'path'; export default defineConfig({ resolve: { alias: { 'services': resolve(__dirname, 'src/services') } } });
确保路径解析正确,__dirname指向项目根目录,别名映射到src/services的绝对路径。
让Vitest继承Vite的resolve配置
Vitest默认会读取vite.config.js,但部分场景下需要显式继承配置,或者单独配置vitest.config.js:
- 方案1:创建/修改vitest.config.js
导入Vite的配置并合并到Vitest配置中:import { defineConfig } from 'vitest/config'; import viteConfig from './vite.config'; export default defineConfig({ ...viteConfig, test: { environment: 'jsdom' // 前端项目通常需要这个配置,根据实际情况调整 } }); - 方案2:在vite.config.js中添加test配置
如果不想单独维护vitest配置文件,直接在现有Vite配置里追加test选项:import { defineConfig } from 'vite'; import { resolve } from 'path'; export default defineConfig({ resolve: { alias: { 'services': resolve(__dirname, 'src/services') } }, test: { environment: 'jsdom' } });
验证目标文件存在性
确认src/services目录下存在api.js(或api/index.js)文件,注意文件名称的大小写——Linux/macOS系统区分大小写,Windows不区分,避免因大小写不匹配导致的找不到文件问题。
清除缓存并重启测试服务
缓存可能导致配置未生效,执行以下操作:
- 关闭当前运行的Vitest服务
- 删除
node_modules/.cache目录 - 重新启动测试命令
内容的提问来源于stack exchange,提问作者dbonafin
相关产品推荐
相关产品推荐

