Gyakori hibák
A(z) './relatív-útvonal' modul nem található
Ha a modul nem található hibát kap, az több okra is visszavezethető:
- Elírta az útvonalat. Győződjön meg róla, hogy az útvonal helyes.
- Lehetséges, hogy a
tsconfig.json
fájlbaseUrl
beállítására támaszkodik. A Vite alapértelmezés szerint nem veszi figyelembe atsconfig.json
fájlt, ezért előfordulhat, hogy telepítenie kell avite-tsconfig-paths
csomagot, ha erre a viselkedésre van szüksége.
- Lehetséges, hogy a
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
Vagy írja át az útvonalat úgy, hogy ne legyen relatív a gyökérhez képest:
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
- Győződjön meg róla, hogy nincsenek relatív aliasok. A Vite azokat relatívnak tekinti ahhoz a fájlhoz képest, ahol az importálás történik, nem pedig a gyökérhez képest.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
Nem sikerült leállítani a workert
Ez a hiba akkor fordulhat elő, ha a NodeJS fetch
függvényét az alapértelmezett pool: 'threads'
beállítással használják. Ezt a problémát a Timeout abort can leave process(es) running in the background #3077 issue követi nyomon.
Megoldásként átválthat a pool: 'forks'
vagy a pool: 'vmForks'
beállításra.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks
Szegmentálási hibák és natív kódhibák
A natív NodeJS modulok futtatása a pool: 'threads'
beállításban rejtélyes hibákhoz vezethet, amelyek a natív kódból származnak.
Segmentation fault (core dumped)
thread '<unnamed>' panicked at 'assertion failed
Abort trap: 6
internal error: entered unreachable code
Ezekben az esetekben a natív modul valószínűleg nem készült fel a több szálon való biztonságos futtatásra. Megoldásként átválthat a pool: 'forks'
beállításra, amely a teszteseteket több node:child_process
folyamatban futtatja, nem pedig több node:worker_threads
szálban.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
vitest --pool=forks