Běžné chyby
Nelze najít modul './relative-path'
Pokud se objeví chyba, že modul nelze najít, může to mít několik příčin:
- Chybně zadaná cesta. Zkontrolujte, zda je cesta správná.
- Používáte
baseUrl
ve vašemtsconfig.json
souboru. Vite standardně nezohledňujetsconfig.json
. Pokud na tomto chování závisíte, budete pravděpodobně muset nainstalovatvite-tsconfig-paths
.
- Používáte
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
Alternativně přepište cestu tak, aby nebyla relativní vůči kořenovému adresáři:
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
- Máte definované relativní aliasy. Vite je interpretuje jako relativní k souboru, ze kterého se importuje, nikoli ke kořenovému adresáři.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
Nepodařilo se ukončit worker
K této chybě může dojít, když je fetch
v NodeJS použit s výchozím pool: 'threads'
. Tento problém je sledován v issue Timeout abort can leave process(es) running in the background #3077.
Jako dočasné řešení můžete přepnout na pool: 'forks'
nebo pool: 'vmForks'
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks
Segfaulty a chyby nativního kódu
Při spouštění nativních modulů NodeJS v režimu pool: 'threads'
se mohou objevit záhadné chyby pocházející z nativního kódu, například:
Segmentation fault (core dumped)
thread '<unnamed>' panicked at 'assertion failed
Abort trap: 6
internal error: entered unreachable code
V těchto případech nativní modul pravděpodobně není sestaven tak, aby byl vláknově bezpečný. Jako dočasné řešení můžete přepnout na pool: 'forks'
, který spouští testovací případy v několika node:child_process
namísto několika node:worker_threads
.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks