2019-8-30 mocha babel 이슈
mocha test issue
- js에서 mocha 테스트를 이용하려고 했을때 이슈가 발생했다.
- mocha에서 es6를 지원안한다. 우선 google에 mocha es6 syntax error를 검색해보았다.
$ mocha userApiTest
/Users/jaeyeonkim/Desktop/moneydog_gitlab/server/db/mongoDB.js:3
import mongoose from 'mongoose';
^^^^^^^^
SyntaxError: Unexpected identifier
- babel의 이슈를 해결하기 위해 (참조1)[https://jaeyeophan.github.io/2017/05/16/Everything-about-babel/]
regeneratorRuntime is not defined
(참조)[https://medium.com/@jongmoon.yoon/mocha-%EB%8B%A8%EC%9C%84-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C%EC%97%90-async-await-%EC%A0%81%EC%9A%A9-%EC%9D%B4%EC%8A%88-8d18f81cb44c](https://medium.com/@jongmoon.yoon/mocha-단위-테스트-코드에-async-await-적용-이슈-8d18f81cb44c]
- async await을 사용해서 발생한 이슈였다.
- babel이 async-await을 구현모듈인 regeratorRuntime으로 변환했다. npm i –save-dev babel-polyfill을 설치하고 테스트코드 맨위에 import ‘babel-polyfill’을 사용하니 해결이 됬다.
느낀점
- bael의 역할에 대해서 단순히 es6 => es5라고만 알고 있었는데, 깊이 알아둘 필요가 있을거같다. babel도 종류가 너무 많다. babel-cli, babel-core, babel-polyfill 등등…. 제대로 알고 쓰자…
Written on August 30, 2019