ErrorLog
Jest에서 ES6 모듈 사용하기 (Expriemental Suport)
ihl
2021. 9. 4. 20:29
Jest에서 ES6 모듈(import-export)를 사용하면 위와 같은 오류가 발생한다. 이 방법을 해결하기 위해선 2가지 방법이 있다.
- Babel 사용하기
- Jest 의 Expremental Support 사용하기
첫 번째는 Babel을 활용하여 코드는 ES6로 작성하되, 실행 시에는 Common JS 모듈로 변경하는 것이다. 이 방법은 이미 프로젝트에서 Babel을 사용하고 있다면 상관없겠지만, Babel을 사용하지 않고 있던 나의 입장에서 번거로운 일이었다. 따라서 이 방법은 사용하지 않았다.
{
"name": "tester",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
},
"type": "module",
"author": "",
"license": "ISC",
"devDependencies": {
"jest": "^27.1.0"
}
}
두 번째는 Jest@25.4.0 부터 지원하는 옵션을 사용해보는 것이다. 이 방법은 Babel과 같은 추가적인 라이브러리 설치가 필요하지 않고, 위와 같이 script 를 변경해주기만 하면 된다!
JEST ECMAScript 모듈 지원 문서: https://jestjs.io/docs/ecmascript-modules#differences-between-esm-and-commonjs