Распространенные ошибки
Не удается найти модуль './relative-path'
Если вы получаете ошибку "модуль не найден", это может указывать на несколько причин:
- Вы указали неверный путь. Убедитесь, что путь верен.
- Возможно, вы полагаетесь на
baseUrl
в вашемtsconfig.json
. Vite по умолчанию не учитываетtsconfig.json
, поэтому вам может потребоваться установитьvite-tsconfig-paths
самостоятельно, если вы используете эту функциональность.
- Возможно, вы полагаетесь на
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
Или измените путь так, чтобы он не был относительным к корню проекта:
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
- Убедитесь, что вы не используете относительные алиасы. Vite рассматривает их как относительные к файлу, из которого производится импорт, а не к корню проекта.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
Не удалось завершить работу воркера
Эта ошибка может возникнуть при использовании fetch
из NodeJS с настройкой pool: 'threads'
по умолчанию. Эта проблема отслеживается в Timeout abort can leave process(es) running in the background #3077.
В качестве временного решения вы можете переключиться на pool: 'forks'
или pool: 'vmForks'
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks
Ошибки сегментации и ошибки нативного кода
Запуск нативных модулей NodeJS в pool: 'threads'
может привести к загадочным ошибкам нативного кода.
Segmentation fault (core dumped)
thread '<unnamed>' panicked at 'assertion failed
Abort trap: 6
internal error: entered unreachable code
В этих случаях нативный модуль, скорее всего, не поддерживает многопоточность. В качестве временного решения вы можете переключиться на pool: 'forks'
, который запускает тестовые случаи в нескольких node:child_process
вместо нескольких node:worker_threads
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks