如何在 vitest 配置文件中添加“@”别名?

问题描述 投票:0回答:1

我有一个包含此导入的测试文件:

import { useGlobalStore } from "@stores"

路径是

src/stores

这在项目中工作正常,但是在测试时,我收到此错误:

Error: Failed to resolve import "@stores" from "src/components/Footer/__test__/Footer.test.tsx". Does the file exist?

之前使用 Jest,我使用 moduleNameMapper 修复了它:

  moduleNameMapper: {
    "^stores/(.*)$": "<rootDir>/src/stores/$1",
  },

我尝试根据文档将其添加到 Vitest 配置中,但没有结果。 这是我的配置文件:

export default defineConfig({
  test: {
    resolve: {
      // ...rest of the code ...
      alias: {
        // I tried all the commented lines without success

        // '@': path.resolve(__dirname, './src'),
        // '@': './src',
        // '@stores': './src/stores', 
        // '@/stores': new URL('./src/stores', import.meta.url).pathname, 

        '@/': new URL('./src/', import.meta.url).pathname, 
      },
    },
  },
});

我尝试了大多数方法都没有成功。

vitest
1个回答
0
投票

尝试使用

fileURLToPath
import { URL, fileURLToPath } from 'node:url';
):

resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
    extensions: ['.js', '.json', '.jsx', '.mjs', '.ts', '.tsx', '.vue'],
  },
© www.soinside.com 2019 - 2024. All rights reserved.