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