일반적인 오류
모듈 './relative-path'을(를) 찾을 수 없습니다
모듈을 찾을 수 없다는 오류가 발생하면 다음과 같은 몇 가지 원인이 있을 수 있습니다.
- 경로를 잘못 입력했을 수 있습니다. 경로가 올바른지 확인하십시오.
tsconfig.json
의baseUrl
에 의존하고 있을 수 있습니다. Vite는 기본적으로tsconfig.json
을 무시하므로, 이 기능을 사용하는 경우vite-tsconfig-paths
를 직접 설치해야 할 수 있습니다.
ts
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
또는 경로를 루트에 상대적이지 않게 다시 작성하십시오.
diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
- 상대 경로 별칭을 사용하고 있지 않은지 확인하십시오. Vite는 이를 루트가 아닌 가져오기가 있는 파일에 상대적인 것으로 처리합니다.
ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
워커 프로세스 종료 실패
이 오류는 NodeJS의 fetch
를 기본 pool: 'threads'
설정과 함께 사용할 때 발생할 수 있습니다. 이 문제는 Timeout abort can leave process(es) running in the background #3077 이슈를 통해 추적되고 있습니다.
임시 해결책으로 pool: 'forks'
또는 pool: 'vmForks'
로 전환할 수 있습니다.
ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
bash
vitest --pool=forks
세그멘테이션 폴트 및 네이티브 코드 오류
pool: 'threads'
에서 네이티브 NodeJS 모듈을 실행할 경우, 네이티브 코드에서 발생하는 다음과 같은 이해하기 어려운 오류가 발생할 수 있습니다.
Segmentation fault (core dumped)
thread '<unnamed>' panicked at 'assertion failed
Abort trap: 6
internal error: entered unreachable code
이러한 경우 네이티브 모듈은 다중 스레드 환경에서 안전하게 동작하도록 빌드되지 않았을 가능성이 높습니다. 해결 방법으로, 테스트 케이스를 여러 node:worker_threads
대신 여러 node:child_process
에서 실행하는 pool: 'forks'
로 전환할 수 있습니다.
ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
bash
vitest --pool=forks